请教关于dynamic_cast的有关问题

请问关于dynamic_cast的问题!请问下面的程序,我编译连接都通过了,就是执行有错误,提示说pc没有初始化,但是

请问关于dynamic_cast的问题!
请问下面的程序,我编译连接都通过了,就是执行有错误,提示说pc没有初始化,但是我改成C*   pc   =   new   C,就编译连接都通不过了。是怎么回事呢?
#include   <iostream>
using   namespace   std;

class   A  
{
public:
virtual   void   f();
};

class   B   :   public   A  
{
public:
virtual   void   f();
};

class   C   :   public   B  
{
public:
virtual   void   f();
};

void   main()
{
C*   pc;
B*   pb   =   dynamic_cast <B*> (pc);  

}

[解决办法]
你虚函数都没有实现,当然无法创建C的实例。