调用拷贝构造函数的三种形式

来源:互联网 发布:淘宝鹊桥网站 编辑:程序博客网 时间:2024/06/13 23:50
#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;}

0 0
原创粉丝点击