“显式调用构造函数和析构函数就像调用一般的函数一样, 并不意味着创建或销毁对象”这句话怎么理解?
1、显式调用构造函数:在调用构造函数之前对象必须已经创建
A a;
a.A::A();
2、显式调用析构函数:调用析构函数之后,对象并没有销毁;调用完之后,还会再调用一次析构函数销毁对象
A a;
a.A::~A();
3、编译器会插入调用构造函数、析枸函数的代码,这才是真正的对象创建、销毁;程序中自己调着玩,跟普通函数一样
举个例子:
class A
{
A() {cout<<"A()"<<endl;};
~A() {cout<<"~A()"<<endl};
}
int main()
{
A a;
a.A::A();
a.A::~A();
return 0;
}输出:
A()
A()
~A()
~A()
本文探讨了在C++中显式调用构造函数和析构函数的现象,解释了这种调用方式并不等同于创建或销毁对象的过程,并通过一个具体的代码示例展示了这一行为。
2463

被折叠的 条评论
为什么被折叠?



