MOOC清华《面向对象程序设计》第3章:拷贝构造函数实验
来源:互联网 发布:手机wifi扫描不到网络 编辑:程序博客网 时间:2024/06/06 02:23
#include <iostream>using namespace std;class Test{public:Test(){cout << "Test()" << endl;}//缺省构造函数 Test(const Test& src){cout << "Test(const Test&)" << endl;}//拷贝构造函数 ~Test(){cout << "~Test()" << endl;}//析构函数 };void func1(Test obj){cout << "func1()..." << endl;}//类作为参数类型 Test func2(){cout << "func2()..." << endl;return Test();//返回缺省构造函数 }//类作为返回类型 int main(){cout << "main()..." << endl;Test t;func1(t);t = func2();return 0;}
测试结果说明:
第二行的 Test() 是对象 t 在构造时调用的缺省构造函数;
第三行的 Test(const Test&) 是以对象 t 为源(source,简写为src)生成一个新的对象,传给 func1() ,所以调用了拷贝构造函数;
第五行的 ~Test() 是 func1() 退出时,把参数 t 释放掉,所以调用了析构函数;
第七行的 Test() 是 func2() 返回一个构造函数时,调用的构造函数;
第八行的 ~Test() 是把 func2() 产生的临时对象给释放掉,调用的析构函数;
最后一行的 ~Test() 是 main 函数退出时,局部变量 t 被释放所调用的析构函数。
阅读全文
0 0
- MOOC清华《面向对象程序设计》第3章:拷贝构造函数实验
- MOOC清华《面向对象程序设计》第3章:移动构造函数实验
- MOOC清华《面向对象程序设计》第4章:继承基类构造函数实验
- MOOC清华《面向对象程序设计》第3章:函数运算符重载实验
- MOOC清华《面向对象程序设计》第2章:函数重载实验
- MOOC清华《面向对象程序设计》第2章:函数参数的缺省值实验
- MOOC清华《面向对象程序设计》第4章:函数重写实验
- MOOC清华《面向对象程序设计》第4章:虚函数实验
- MOOC清华《面向对象程序设计》第4章:虚析构函数实验
- MOOC清华《面向对象程序设计》第4章:函数模板实验
- MOOC清华《面向对象程序设计》第4章:函数模板的特化实验
- MOOC清华《面向对象程序设计》第3章:对象组合实验
- MOOC清华《面向对象程序设计》第3章:赋值运算符重载实验
- MOOC清华《面向对象程序设计》第3章:流运算符重载实验
- MOOC清华《面向对象程序设计》第3章:下标运算符重载实验
- MOOC清华《面向对象程序设计》第3章:前缀/后缀运算符重载实验
- MOOC清华《面向对象程序设计》第3章:static静态成员实验
- MOOC清华《面向对象程序设计》第3章:const常量成员实验
- adb环境变量配置
- Unity UGUI 动态添加Button.OnClick()事件
- CSDN日报20170816——《做自由职业者是怎样的体验》
- Spring boot结合Spring-Data-JPA操作MySQL数据库
- 记录一下自己最近的学习曲线路程。。
- MOOC清华《面向对象程序设计》第3章:拷贝构造函数实验
- unity不同平台下访问游戏中文件的路径
- fmt标签格式化输出字符串为日期格式字符串
- Eclipse开发环境配置(Windows)
- 【模板】【数论】快速幂和快速乘法
- MySQL优化原理
- 多态练习题
- MySQL主从数据复制问题解决办法
- nginx支持ssl和panthinfo和去掉index.php