这个程序中的 ~ 是什么意思?(该程序输出结果的流程)
发布网友
发布时间:2022-04-21 00:44
我来回答
共2个回答
热心网友
时间:2022-04-21 02:13
~是用在析构函数前面的。析构函数就是对象在离开作用域后,资源回收的函数。
你这个程序中有三个类,A是基类,B继承A,C继承B。
主函数中定义了一个C类对象c。这时调用构造函数,对于派生类的构造,首先要初始化基类部分,在初始化派生类对象部分。这时候就调用顺序就是
A::A()
B::B()
C::C()
在主函数return后,这时候c对象会被析构,析构时对象销毁,顺序和构造相反
C::~C()
B::~B()
A::~A()
所以输出为
cout<<"constructing A"<<endl;
cout<<"constructing B"<<endl;
cout<<"constructing C"<<endl;
cout<<"destructing C"<<endl;
cout<<"destructing B"<<endl;
cout<<"destructing A"<<endl;
热心网友
时间:2022-04-21 03:31
'~'放在类名之前 ,表示这是这个类的析构函数,强烈推荐你去看看c++的析构函数的定义及作用。