2013-10-10 3 views
3

Я попытался переписать все методы абстрактного базового класса, но я не получил все, как кажется.Получить недостающие члены абстрактного базового класса

Я строю проект с msbuild, проект был создан cmake.

Компилятор MSVC++ 2012 жалуется на ошибку error C2259: 'Derived' : cannot instantiate abstract class.

Итак, вопрос заключается в том, как заставить компилятор сообщить мне недостающие имена методов, что класс больше не является абстрактным (и все методы определены)?

+2

Можете ли вы показать свой код относительно создания объекта из абстрактного класса? – billz

+2

Вы можете найти первый ответ на этот вопрос полезным: http://stackoverflow.com/questions/1699224/method-for-solving-error-cannot-instantiate-abstract-class –

+0

@MatthewWalton Я создаю проект с помощью msbuild, но сообщение об ошибке одно и то же, просто без информации об отсутствующем определении – Quonux

ответ

4

Посмотрите на окно вывода, а не на список ошибок. Мой список ошибок, например, говорит:

error C2259: 'Derived' : cannot instantiate abstract class 

, но мой выход говорит:

1>c:\users\documents\visual studio 2012\projects\testcpp\test.cpp(18): error C2259: 'Derived' : cannot instantiate abstract class 
1>   due to following members: 
1>   'void Base::bar(void)' : is abstract 
1>   c:\users\documents\visual studio 2012\projects\testcpp\test.cpp(8) : see declaration of 'Base::bar' 

Много сообщений об ошибках MSVC дать подробную информацию о последующих строк, и, к сожалению, те, как правило, не пробиваются в список ошибок.

Смежные вопросы