拷贝构造函数被调用的时机
来源:互联网 发布:玉溪广电网络分公司 编辑:程序博客网 时间:2024/05/16 11:36
拷贝构造函数被调用的时机:
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;static int count;};Point::Point(Point &p){X = p.X;Y = p.Y;count++;cout << "拷贝构造函数被调用, " << "count:"<< count << endl;}void fun1(Point p){ cout<<p.GetX()<<endl;} Point fun2(){Point A(3,4);//调用拷贝构造函数return A;}int Point::count = 0;void main(void){ Point A(1,2);// 当用类的一个对象去初始化该类的另一个对象时系统自动调用拷贝构造函数实现拷贝赋值。Point B(A); //拷贝构造函数被调用cout<<B.GetX()<<endl;// 若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数fun1(A); //调用拷贝构造函数// 当函数的返回值是类对象时,系统自动调用拷贝构造函数。B = fun2();cout<<B.GetX()<<endl;// 调用2次拷贝构造函数,第一处是在fun2()中的return A,第二处是将fun2的返回值初始化引用ref时。Point & ref = fun2();cout<<ref.GetX()<<endl;}
- 拷贝构造函数被调用的时机
- 拷贝构造函数被调用的时机
- 拷贝构造函数被调用的时机
- 拷贝构造函数被调用的时机
- 拷贝构造函数调用的时机
- c++拷贝构造函数的调用时机
- 调用拷贝构造函数的时机
- 拷贝构造函数的调用时机
- 拷贝构造函数调用时机
- 拷贝构造的调用时机
- C++之拷贝构造函数的调用时机
- c++ 拷贝构造函数调用时机
- 拷贝构造函数调用时机3
- 拷贝构造函数3.调用时机
- C++中拷贝构造函数和赋值函数被调用的时机
- 拷贝构造函数的调用时机1,2 对象初始化时机
- C++拷贝构造函数 调用时机 -- 深浅拷贝
- 构造函数,拷贝构造函数,赋值操作符的调用时机
- 黑马程序员_面试问题
- RAII惯用法:C++资源管理的利器
- 黑马程序员_遥远的她
- 黑马程序员_学习中多交流
- 数据结构复习笔记(递归先序遍历)
- 拷贝构造函数被调用的时机
- Windows Phone 使用FlurrySdk
- python 网络编程测试-host应答
- Git详解之二 Git基础
- 采用apache的commons.digester包对XML文件进行简单映射解析!
- pimpl
- HTML5将改变互联网的方方面面
- 禁止程序运行
- extjs构造store 实例