#include "iostream"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
using namespace std;
//copy构造函数的调用时机,也就是之前的赋值参数构造函数
class TEST
{
public:
TEST()
{
cout<<"普通的构造函数"<<endl;
}
TEST(const TEST& a)
{
cout<<"copy构造函数"<<endl;
}
private:
int a;
int b;
protected:
};
//copy构造函数
int main()
{
TEST t1;//先创立的对象,后释放
TEST t2 =t1;//1.对copy构造函数的第一种调用方法,进行初始化操作的时候是使用的copy构造函数
TEST t3(t1);//2.第二种调用方法
int a(TEST a)
{
return 0;
}
a(t1);//copy构造函数的第三种调用方法,因为实参赋给形参的时候会进行对形参的初始化,所以会调用赋值构造函数
TEST a()
{
TEST A;
return A; //copy构造函数的第四种的调用方式,当对象返回的时候会进行一次初始化
}
a();//如果没有对象去接,那么返回的匿名对象会进行析构
TEST b=a();//有对象进行初始化的时候去接函数返回的对象,那么这个匿名对象会直接转换为新对象
TEST b;
b=a();//当接的对象不是进行初始化的时候,函数返回的匿名对象会析构掉
system("pause");
return 0;
}
c++学习记录_03.04
最新推荐文章于 2020-05-13 09:17:54 发布