c25调用函数调用规则.cpp
#include<iostream>
using namespace std;class Students04{
// 1.创建好类之后,编译器会默认提供三个函数:默认构造函数、构造函数、拷贝构造函数
// 2.自己写了有参构造函数,编译器就不会提供默认构造函数,拷贝构造函数还是会提供
// 3.如果自己写了拷贝构造函数,编译器不再提供其他构造函数
public:int s_age;Students04(int age){s_age = age;cout << "有参构造函数" << endl;}// // 拷贝构造函数Students04(const Students04 &p){s_age = p.s_age;cout << "有参构造函数" << endl;}};int main()
{// 情况1:// 1.创建好类之后,编译器默认提供三个函数:默认构造函数、析构函数、拷贝构造函数// Students04 stu1; // 调用默认的构造函数 自己写了有参构造,默认就失效// stu1.s_age = 18;// Students04 stu2(stu1); // 默认提供拷贝构造函数// cout << stu2.s_age << endl;// 情况2:// 自己写了有参构造函数,编译器就不会提供默认构造函数,拷贝构造函数还是会提供// Students04 stu1; // 报错,自己写了有参构造函数,编译器就不会提供默认构造函数// Students04 stu1(18); // 调用默认的构造函数// Students04 stu2(stu1); // 默认提供构造函数// cout << stu2.s_age << endl;// 情况3:// 3.自己写了拷贝构造函数,编译器不再提供其他构造函数// Students04 stu1; // 报错,编译器就不会提供默认构造函数Students04 stu1(18);Students04 stu2(stu1); // 默认提供拷贝构造函数cout << stu2.s_age << endl;return 0;
}