【发布时间】:2012-06-24 06:56:53
【问题描述】:
Class Shape {
virtual Shape() = 0;
virtual ~Shape() = 0;
}
Class Circle : Public Shape {
Circle();
~Circle();
// Something ...
}
int main () {
Shape* s = new Circle();
delete s;
}
是不是在调用Circle的构造函数?即使它是Shape的构造的不同名称? 删除s的时候,是不是调用Circle的析构函数?
【问题讨论】:
-
这是 C# 吗?如果是这样,您可能希望将其添加为标签。
-
这应该是 C++ 吗?如果是这样,将构造函数标记为虚拟是不合法的。
标签: c++ inheritance constructor destructor