Есть класс, описывающий интерфейс, скажем IMyInterface, и класс, его реализующий, пусть будет CMyInterfaceImplementation:
#includeclass IMyInterface { virtual unsigned long DeleteFile(const std::wstring&) = 0; }; class CMyInterfaceImplementation : public IMyInterface { unsigned long DeleteFile(const std::wstring&); };
При попытке скомпилировать проект под Visual Studio 2005 появляется ошибка:
error C2259: 'CMyInterfaceImplementation' : cannot instantiate abstract class due to following members:
'unsigned long DeleteFile(const std::wstring&)' is abstract
По какой-то причине компилятор воспринимает метод DeleteFile как WinAPI функцию DeleteFile. Если переименовать метод DeleteFile, то все работает нормально.
Для исправления ошибки достаточно включить заголовочный файл windows.h в файл, где создается экземпляр класса CMyInterfaceImplementation.
No comments:
Post a Comment