【发布时间】:2013-03-22 12:11:09
【问题描述】:
我有以下风格的代码:
class SubClass;
class SuperClass;
class SuperClass {
private:
void bar() {
SubClass().foo();
}
};
class SubClass : SuperClass {
public:
void foo() {};
};
所以基本上我有一个 SuperClass,我想从其中调用子类的方法 foo()。 VS 2012 给我以下错误:
错误 1 错误 C2514:“子类”:类没有构造函数。
错误 2 错误 C2228:'.foo' 左侧必须有类/结构/联合。
我想做的事情的正确结构是什么?
【问题讨论】:
-
virtual void foo();? -
你不应该这样做。
-
这是一件非常好的和有用的事情。这就是为什么虚函数被添加到 c++ 中的原因。
标签: c++ class superclass