以下c++代码中,B继承了A类,为啥A的 析构
函数会执行2次, 而A的 构造
函数只执行了一次?
按理说构造函数执行一次就应该是创建了一个对象,一个对象释放了2次就不能理解了,这是为啥?
// A
class A {
public:
A(){
std::cout <<"A的构造函数--" << std::endl;
}
~A() {
std::cout <<"A的析构函数" << std::endl;
}
};
class B : public A {
public :
B(){
std::cout <<"B的构造函数--" << std::endl;
}
~B() {
std::cout <<"B的析构函数" << std::endl;
}
};
int main() {
A a = B();
}
执行结果如下: