【发布时间】:2017-08-22 18:13:16
【问题描述】:
例如:
struct A {
~A() {
cout << me << ": destructor" << endl;
}
const string me = "A";
};
struct B : A {
const string me = "B";
};
int main() {
{
A a;
B b;
}
cout << "----\n";
return 0;
}
对不起,新手问题,我只是想知道以下输出:
A: destructor
A: destructor
----
在第二行我期待B: destructor。你能解释一下为什么吗?如何在不重写析构函数的情况下修改代码才能看到预期的结果?
【问题讨论】:
-
A::me与B::me完全无关。它们是独立的变量,A对B::me一无所知。
标签: c++ inheritance code-reuse