类的复制构造函数调用
2015-08-11 20:54
274 查看
复制构造函数调用条件:
(1)一个对象以值传递的方式传入函数体
(2)一个对象以值传递的方式从函数体返回
(3)一个对象需要通过另外一个对象进行初始化
输出:
(1)一个对象以值传递的方式传入函数体
(2)一个对象以值传递的方式从函数体返回
(3)一个对象需要通过另外一个对象进行初始化
#include<stdio.h> #include<iostream> #include<stack> #include<math.h> #include<string.h> using namespace std; class A{ public: A(){} A(const A&a){ cout << "copy"<<endl;} private: }; A f(A a){ A v(a); cout<<"1"<<endl; A b= v; cout<<"2"<<endl; return b; } class Test { public: int a; Test(int x) { a = x; } Test(Test &test)//复制构造函数 { cout<<"copy constructor"<<endl; } }; void fun1(Test test) //(1)值传递传入函数体 { cout << "fun1()...." <<endl; } void fun2() //(2)值传递从函数体返回 { Test t(2); cout << "fun2()...." <<endl; return t; } int main(){ A x; A y; cout<<"==========="<<endl; A d=f(y); cout<<"==========="<<endl; f(y); cout<<"==========="<<endl; A c=f(f(x)); cout<<"==========="<<endl; Test t1(1); Test t2 = t1; //(3)用t1对t2做初始化 cout << "before fun1()...." <<endl; fun1(t1); Test t3 = fun2(); cout << "before fun2()...." <<endl; return 0; }
输出:
相关文章推荐
- 前言:关于nagios监控
- php时区 为什么两个语句才能起效 date_default_timezone_set ini_set('date.timezone
- 8.11(web doget方法乱码)
- 前言:关于nagios监控
- object转化为string
- Linux后门入侵检测方法以及工具
- 九度oj 1007
- 教你自己实现一个事件总线EventBus
- 寻找数组中的第二大数
- OC_AddressBook_通讯录写入
- 如何运维网站能让其稳定高效——稳定篇
- Jungle Roads
- hdu 1251 统计难题(字典树·粉刷式标记)
- 32.自定义tableViewCell
- ZeroMQ下载、安装、编译
- JAVA基础一大堆0810数据库小练习
- iOS项目开发实战——获取网页源代码的二进制数据
- LintCode-分糖果
- [NOIP 2013]货车运输
- atitit。html css框架Bootstrap  Foundation的比较与不同 attilax大总结