#include <iostream>
#include <string>
using namespace std;
class MyClass
{
public:
MyClass(int x1 = 1, int y1 = 2);
MyClass(const MyClass& mc1);
void print()
{
cout<<x<<'\t'<<y<<endl;
}
private:
int x,y;
};
MyClass::MyClass(int x1, int y1)
{
x = x1; y = y1;
}
MyClass::MyClass(const MyClass& mc1)
{
x = 2*mc1.x;
y = 2*mc1.y;
cout<<"调用拷贝构造函数!"<<endl;
}
void fun1(MyClass mc2)
{
cout<<"调用拷贝构造函数形式二!"<<endl;
mc2.print();
}
MyClass fun2()
{
MyClass mc3(8,9);
cout<<"调用拷贝构造函数形式三!"<<endl;
return mc3;
}
int main()
{
MyClass mc(5,6);
mc.print();
//MyClass mc(5,6),mc4; //mc4?
//mc4 = mc; //不会调用拷贝构造函数
MyClass mc4(mc);
mc4.print();
fun1(mc); //调用拷贝构造函数形式二
MyClass mc5;
mc5 = fun2(); //调用拷贝构造函数形式三
mc5.print();
return 0;
}
调用拷贝构造函数的三种形式
最新推荐文章于 2023-04-18 14:14:15 发布