看看这个代码错在哪里.代码不多.
考试题.但真找不出有错.请问错在哪里.??指出下面程序中的错误,在错误处说明出错原因
class A {
public:
A( ) { func(); }
Virtual void func() = 0;
};
main()
{}
我还是没有理解aogun给我的讲解
我又走回来,打算把我的想法说出来,希望大家改正
我认为,主要原因还是纯虚函数不能调用
而隐含的问题是构造函数中虚函数不是虚函数,可以看成一个普通函数
所以LZ的虚函数没有其实际作用.
因为构造函数中前面有this指针,根本就不可能调用子类的虚函数(c#之所以可以大概就是这里的this也是指针,考虑了虚拟吧)
而aogun说的没有建立虚函数表,我认为不成立.
因为这里如果你想调用子类的虚函数条件就是需要有指针和引用
而这里有了指针和引用就意味着已经建立完了子类
同时虚函数表也应该完成了,所以只是这里虚拟不能调用而已
[此贴子已经被作者于2006-6-26 11:49:35编辑过]