VC ++ наследуется от абстрактного класса - PullRequest
1 голос
/ 11 марта 2011

У меня есть два класса, как это:

// 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();
}

Это прекрасно работает с g ++ в Linux, но когда я пытаюсь применить тот же шаблон в VS 2010, я получаю:

error C2259: 'Child' : cannot instantiate abstract class

Есть идеи, почему?

1 Ответ

0 голосов
/ 11 марта 2011

Я думаю, вам нужно добавить public: перед подписью вашей функции в заголовочном файле.g ++ может интерпретировать это как частную функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...