C++:复制构造函数的应用
代码:
#include <iostream>
using namespace std;
class Sample{
public:
int v;
Sample(int n):v(n) { }
Sample(Sample &x) {v=2*x.v;}
};
int main() {
Sample a(5);
Sample b = a;
cout << b.v;
return 0;
}
using namespace std;
class Sample{
public:
int v;
Sample(int n):v(n) { }
Sample(Sample &x) {v=2*x.v;}
};
int main() {
Sample a(5);
Sample b = a;
cout << b.v;
return 0;
}
输出:
5
10
复制构造函数应用的三种情况:
1、用一个对象去初始化同类的另一个对象时;
2、函数某参数为类A的对象,该函数调用时,类A的复制构造函数将被调用;
3、函数返回值是类A的对象,该函数返回时,类A的复制构造函数将被调用。
这里是第一种情况,调用Sample(Sample &x){v=2*x.v;}复制构造函数。