#include <iostream.h>
class father
{
public:
father()
{
cout<<"调用父类构造函数"<<endl;
}
void run()const{cout<<"父亲可以跑万米"<<endl;}
};
class son():public father
{
public:
son()
{
cout<<"调用子类的构造函数"<<endl;
}
void run()const{cout<<"儿子可以跑千米"endl;}
};
int main()
{
father *p=new son;
p->run();
delete p;
return 0;
};
貌似虚函数只能在基类中被声明吧
追答这个理解绝对是错误的,虚函数不知在基类中可以声明,你的这个程序中两个run函数都应该加上virtual的,但是因为第二个run编译器会根据前面的father的run是虚函数,判断son里的run是不是也是虚函数(看返回值类型,函数名,参数类型是否完全相同),所以可以不在son类中的run加virtual。
好像我记得用就不用加using namespece std了 用才要加的啊