复制构造函数被调用的三种情况

来源:互联网 发布:雪河二少捏脸数据 编辑:程序博客网 时间:2024/05/16 02:19
/*复制构造函数被调用的三种情况:1.当用类的一个对象去初始化该类的另一个对象时2.如果函数的形参是类的对象,调用函数时,进行形参和实参结合时3.如果函数的返回值是类的对象,函数执行完成返回调用者时*/#include<iostream>using namespace std;class Point{public:Point(int xx = 0, int yy = 0){  //构造函数x = xx;y = yy;}Point(Point &p);  //复制构造函数int getX(){ return x; }int getY(){ return y; }private:int x, y;};Point::Point(Point(&p)){x = p.x;y = p.y;cout << "Calling the copy constructor" << endl;}void f(Point p){cout << p.getX() << endl;}Point g(){Point a(1, 2);return a;}int main(){Point a(1, 2);Point b(a);Point c = a;  //b和c的初始化都调用复制构造函数,两种写法形式不同,执行操作相同cout << b.getX() << endl;cout << "第二种调用方式:" << endl;f(a);cout << "第三种调用方式:" << endl;Point d;d = g();return 0;}

阅读全文
1 0
原创粉丝点击