Abr*_*rar 1 c++ destructor c++11
我有两个类下面的示例代码程序员和CSstudent哪里
CSstudent:public Programmer
Run Code Online (Sandbox Code Playgroud)
为这两个类定义了析构函数:
class Programmer{
.........
public:
~Programmer(){
cout<<"A Programmer obj destroyed";
}
}
class CSstudent:public Programmer{
.........
public:
~CSstudent(){
cout<<"CSstudent obj destroyed";
}
}
Run Code Online (Sandbox Code Playgroud)
现在在main()中:
int main(){
CSstudent cs1;
/* call to CSstudent member functions by invoking the cs1 object
........... */
cout<<cs1.getName()<<cs1.getUni()<<cs1.getLang()<<endl;
}
Run Code Online (Sandbox Code Playgroud)
程序运行后,我得到以下内容: CSstudent obj销毁程序员obj被破坏
我知道析构函数不是继承的,当对象超出范围时会调用析构函数.我初始化了一个CSstudent对象然后为什么调用Programmer类的析构函数?
我希望这个输出: CSstudent obj被破坏了
派生类本质上包含其中的基类.构造派生类时,首先构造基类,然后构造派生类(这是有道理的,以防您的派生类需要使用它假定已正确初始化的基类变量).在破坏时则相反,首先调用派生类析构函数,然后调用基类析构函数来清理基类信息.