我有两个这样的课程:
// parent.h
class Parent {
public:
virtual void Method() = 0;
}
和
//child.h
#include "parent.h"
class Child : public Parent {
public:
Child();
~Child();
virtual void Method();
}
//child.cpp
#include "child.h"
Child::Child() { }
Child::~Child() { }
void Child::Method() { }
+
void main() {
Parent* p = new Child();
}
这适用于Linux上的g ++,但是当我尝试在VS 2010中应用相同的模式时,我得到:
error C2259: 'Child' : cannot instantiate abstract class
任何想法为什么?
答案 0 :(得分:0)
我认为您需要在头文件中的函数签名之前添加public:
。 g ++可能会将其解释为私有函数。