时间:2021-05-20
看如下代码:
复制代码 代码如下:
#include<iostream>
class TestConstructor
{
public:
TestConstructor()
{
std::cout<<"TestConstructor()"<<std::endl;
}
~TestConstructor()
{
std::cout<<"~TestConstructor()"<<std::endl;
}
TestConstructor(const TestConstructor& testObj)
{
std::cout<<"TestConstructor(const TestConstructor&)"<<std::endl;
}
TestConstructor& operator = (const TestConstructor& testObj)
{
std::cout<<"TestConstructor& operator = (const TestConstructor& testObj)"<<std::endl;
return *this;
}
};
TestConstructor testFunc()
{
TestConstructor testInFunc; //3、调用TestConstructor() 生成对象testInFunc
return testInFunc; //4、调用TestConstructor(const TestConstructor&) 生成临时对象
//5、调用析构函数,析构对象testInFunc
}
int main()
{
TestConstructor test; //1、调用TestConstructor() 生成对象test
test = testFunc(); //2、调用testFunc() //6、调用等号把临时对象复制给对象test //7、调用析构函数,析构临时对象
return 0; //8、调用析构函数,析构对象test
}
看输出:
有注释,有输出。执行细节,一目了然了吧
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.构造函数、析构函数与拷贝构造函数介绍构造函数1.构造函数不能有返回值2.缺省构造函数时,系统将自动调用该缺省构造函数初始化对象,缺省构造函数会将所有数据成员
详解C++编写String的构造函数、拷贝构造函数、析构函数和赋值函数编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:classS
和构造函数类似,析构函数也是不能被继承的。创建派生类对象时,构造函数的调用顺序和继承顺序相同,先执行基类构造函数,然后再执行派生类的构造函数。但是对于析构函数,
简介析构函数(Destructors),是对象的成员函数,没有返回值也没有参数,且一个类只有一个析构函数,当对象被销毁的时候调用,被销毁通常有这么几个情况。函数
首先回顾以前所学的构造函数类的构造函数用于对象的初始化构造函数与类同名并且没有返回值构造函数在定义时被自动调用由于构造函数没有返回值不能判断执行结果,所以不能保