C++复习之构建函数

C++复习之构建函数_第1张图片

#include 
using namespace std;

class Person {
	//每个类都会默认有构造函数(函数生成时有)和析构函数(释放函数时生成)
	//构造函数的分类:无参构造函数(默认)、有参构造函数
	//普通构造、拷贝构造

public:
	Person()
	{
		cout << "Person的无参构造函数" << endl;
	}
	Person(int a) {
		int age = a;
		cout << "Person的有参构造函数" << endl;
	}
	Person(const Person& p)
	{
		cout << "Person的拷贝构造函数" << endl;
	}
	~Person()
	{
		cout << "Person的析构函数" << endl;
	}

};
void test()
{
	//1、括号法
	Person p1;
	Person p2(10);
	Person p3(p2);
	//注意事项1
	//调用构造函数时,不要加()
	//因为下面这行代码,编译器会认为是一个函数的声明,不会认为在创建对象
	Person p4();

	//2、显示法
	Person p5;
	Person p6 = Person(10);//有参构造函数
	Person p7 = Person(p6);//拷贝构造函数

	Person(20);//匿名对象 特点:当前行执行结束后,系统会立即回收匿名对象
	cout << "aaa" << endl;

	//注意事项2
	//不要利用拷贝构造函数 初始化匿名对象  编译器会认为Person(p7)===Person p7;对象定义重复
	//Person(p7);


	//3、隐式法
	Person p8 = 20;
	Person p9 = p8;
}
int main()
{
	test();
	system("pause");
	return 0;
}


你可能感兴趣的:(c++,开发语言)