系统默认给一个类提供3个函数 默认构造、拷贝构造、析构函数
- 当我们提供了有参构造函数,那么系统就不会给我们提供默认构造函数了。
#include<iostream>
using namespace std;
class Nick {
public:
Nick(double c) {
cout << "Nick(double c)..." << endl;
}
};
void test01() {
Nick n;
}
但是系统还会提供默认拷贝构造函数,会进行简单的值拷贝
#include<iostream>
using namespace std;
class Nick {
public:
Nick(double c) {
cout << "Nick(double c)..." << endl;
}
int m_age;
};
void test01() {
Nick n1(3.0);
n1.m_age = 37;
Nick n2(n1);
cout << "n2的m_age是" << n2.m_age << endl;
}
int main() {
test01();
system("pause");
return 0;
}
- 2 当我们提供了 拷贝构造 那么系统就不会提供其他构造了
class Nick1 {
public:
Nick1(const Nick1& nick1) {
cout << "Nick1(const1 Nick& nick)..." << endl;
}
};
void test02() {
Nick1 nick1;
}