0
点赞
收藏
分享

微信扫一扫

构造函数的分类及调用

zidea 2022-04-06 阅读 53
c++
#include<iostream>
#include<string>
using namespace std;
//构造函数的分类及调用
//按照参数 有参和无参
//按照类型分类 普通构造 和 拷贝构造
class person
{
public:
	person()//无参构造函数
	{
		cout << "person的构造函数调用" << endl;
	}
	person(int a)//有参构造函数
	{
		cout << "person的有参构造函数调用" << endl;
	}
	//拷贝构造函数
	person(const person & p)
	{
		cout << "person的kaobei构造函数调用" << endl;
	}
};
void test01()
{
	//1.小括号法
	//person p1;
	//person p2(10);
	//person p3(p2);
//	person p1();//编译器认为是一个函数的声明,不会认为在创建对象
	//2.显式法
	person p1;
	person p2 = person(10);//有参构造
	person p3 = person(p2);//拷贝构造
	//不要利用拷贝函数初始化匿名对象 编译器会认为person(p3)==person p3
//	person(p3);//error
	//3.隐式转换法
	person p4 = 10;//相当于谢了person p4=person(10)
}//注意事项 调用默认构造函数的时候,不要加()
int main()
{
	test01();
	system("pause");
	return 0;
}

拷贝构造函数的调用时机
//使用一个已经创建完毕的对象来初始化一个新对象
//值传递的方式给函数参数产值
//值方式返回局部对象

举报

相关推荐

0 条评论