#if 1 //vs一个工程下面多个源文件编译,修改1为0可不进行编译
#include <iostream>
using namespace std;
//1、构造函数的调用规则
//默认构造 空实现
//析构函数 空实现
//拷贝构造 值拷贝
//2、
// 如果我们写了有参构造函数,编译器就不再提供默认构造,依然提供拷贝构造
// 如果我们写了拷贝构造函数,编译器就不再提供其他普通构造函数
class Person
{
public:
/*Person()
{
cout << "Person默认构造函数调用" << endl;
}*/
/*Person(int age)
{
m_Age = age;
cout << "Person有参构造函数调用" << endl;
}*/
Person(const Person& p)
{
m_Age = p.m_Age;
cout << "Person拷贝构造函数调用" << endl;
}
~Person()
{
cout << "Person析构函数调用" << endl;
}
int m_Age;
};
//void test01()
//{
// Person p;
// p.m_Age = 18;
//
// Person p2(p);
//
// cout << "p2的年龄为:" << p2.m_Age << endl;
//}
void test02()
{
Person p;
/*Person p2(p);
cout << "p2的年龄为:" << p2.m_Age << endl;*/
}
int main()
{
test02();
system("pause");
return 0;
}
#endif