拷贝构造函数

来源:互联网 发布:淘宝造物节 编辑:程序博客网 时间:2024/06/12 00:55
<pre name="code" class="cpp">/* * main.cpp * *  Created on: 2016-10-21 *      Author: llf05 */# include <iostream>using namespace std;class Point{public://如果没有定义构造函数,编译器会自己生成一个copy构造函数Point(int x = 0, int y = 0){X = x;Y = y;};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 << "拷贝构造函数调用" << endl;};void fun1(Point p){cout << p.getx() << endl;}Point fun2(){Point A(1, 2);return A;}//如果参数不是基本类型,而是一个类时,调用拷贝构造函数int main(void){Point A(1, 2);//当用类的一个对象初始化该类的另一个对象时系统自动调用它实现拷贝赋值Point B(A);//若函数的参数为类的对象,调用函数时,实参值赋值给形参,系统自动调用构造函数fun1(A);  //调用copy构造函数//当函数的返回值为类对象时,系统自动调用copy构造函数Point C;C = fun2();cout << B.getx() << endl;}


                                             
0 0
原创粉丝点击