关于复制构造函数的调用时机
来源:互联网 发布:python有哪些图形库 编辑:程序博客网 时间:2024/05/22 10:53
关于复制构造函数的调用时机
1.当用类的一个对象去初始化该类的另一个对象时。
2.如果函数的形参是类的对象,调用函数时,进行形参和实参结合时(只有进行值传递时才会调用复制构造函数,引用传递时则不会调用)
3.如果函数的返回值是类的对象,函数执行完成返回调用者时。
但是!根据编译器的不同会有不同的结果!
#include <iostream>using namespace std;class Point { public: Point(int xx=0,int yy=0){ x=xx; y=yy; cout<<"Create Point"<<endl; } ~Point(){ cout<<"Delete Point"<<endl; } Point(Point &p) { x=p.x; y=p.y; cout<<"Copy Point"<<endl; }private: int x,y;};void fun1(Point p){ cout<<" Use fun1"<<endl;}Point fun2(){ cout<<"Use fun2"<<endl; Point a(1,2); return a;}int main(int argc, char *argv[]){ Point a(4,5); Point b=a;//第1种情况 fun1(b);//第2种情况 b=fun2();//第3种情况 return 0;}
输出结果:
Create Point
Copy Point
Copy Point
Use fun1
Delete Point
Use fun2
Create Point
Delete Point
Delete Point
Delete Point
根据结果可知,复制构造函数只调用了2次,比我们估计的次数要少2次,而构造函数却多调用了一次.这其中可能编译器已经帮我们做过了优化,所以结果并不与我们所想相符.
0 0
- 关于复制构造函数的调用时机
- 构造函数和复制构造函数的调用时机
- 构造函数以及复制控制操作的调用时机
- C++基础篇之 复制构造函数调用时机
- 拷贝构造函数调用的时机
- 全局对象构造函数的调用时机
- 拷贝构造函数被调用的时机
- c++拷贝构造函数的调用时机
- 拷贝构造函数被调用的时机
- 调用拷贝构造函数的时机
- 构造函数的调用时机/次数
- 拷贝构造函数被调用的时机
- 拷贝构造函数被调用的时机
- 拷贝构造函数的调用时机
- c++ 构造函数,复制构造函数,赋值构造函数,析构函数调用时机
- 拷贝构造函数调用时机
- 复制构造函数的调用
- c++构造、复制、赋值调用时机
- static 静态变量
- Linux下安装Nginx完整教程及常见错误解决方案
- 动作游戏Demo(一)换装系统
- 2015蓝桥杯B组第三题(三羊献瑞)
- Exar推出AEC-Q100标准系列40V PoL稳压器XR76205系列
- 关于复制构造函数的调用时机
- java线程安全小结
- 【黑客解析】黑客是如何实现数据库勒索的?
- 指针与指针的指针
- Extjs4学习笔记(四)------可编辑表格
- 旋转数组求某个值:今日头条面试题--二分法
- PHP解耦的三重境界(浅谈服务容器)
- IDEA 整合 Struts2+Spring4+Hibernate5
- 【HDU 5971】二分染色