sus*_*att 0 c++ abstract-class visual-studio-2008 visual-studio
我正在使用VS2008构建一个普通的旧C++程序(而不是C++/CLI).我有一个抽象基类和一个非抽象派生类,并构建这个:
Base* obj;
obj = new Derived();
Run Code Online (Sandbox Code Playgroud)
失败并显示错误"'Derived':无法实例化抽象类".(但值得注意的是,如果我将鼠标悬停在Base光标上,VS会弹出一个工具提示"class base abstract",但是悬停Derived只会说"class Derived"(没有"抽象")).
这些类的定义相当大,我想避免手动检查每个方法是否已被覆盖.VS能以某种方式为我做这件事吗?有关精确定位类定义的确切部分以使其抽象的一般提示吗?
编译器应该在错误消息中告诉您.下列:
struct base
{
virtual void foo(void) = 0;
virtual void bar(void) = 0;
};
struct derived : base
{
virtual void foo(void){}
};
int main(void)
{
derived d;
}
Run Code Online (Sandbox Code Playgroud)
生产:
错误C2259:'derived':
由于以下成员无法实例化抽象类:
'void base :: bar(void)':是抽象的,
请参阅'base :: bar'的声明
动态分配也是如此.
| 归档时间: |
|
| 查看次数: |
240 次 |
| 最近记录: |