【发布时间】:2014-12-01 11:13:35
【问题描述】:
我有一个示例代码sn-p:
class A
{
public:
virtual void func1();
virtual void func2();
};
class B
{
public:
virtual void func2();
virtual void func3();
};
void main()
{
A *obj = new B;
obj->func3();
}
为什么obj->func3(); 行返回错误?
(我们知道为每个类创建了一个单独的虚拟表)”
【问题讨论】:
-
你需要使用继承。
-
应该
A是B的公共基础吗? -
另外,请记住
main的返回类型是int。 -
您的问题标题难以阅读,请考虑将其缩短。另外,请更具体地说明错误。
-
怀疑 obj 是否能够指向虚拟表。但它甚至无法编译,因为 A 类中不存在 func。感谢您的回答。
标签: c++ polymorphism virtual-functions overriding