复制构造函数、重载赋值运算符、类型转换小结
来源:互联网 发布:mac pro 13寸高清壁纸 编辑:程序博客网 时间:2024/06/14 07:02
1.转换函数:
A.单个值转换为类类型:C_name(typename value)没有返回值
B.类类型转换为其他类型:operator typename()没有返回值,但需要写出return语句
可以用关键字explicit来关闭隐式转换,例如:C_name class1=xxx;将是错误的,必须写成:
C_name class=C_name(xxx);或C_name class=(C_name)xxx;
2.复制构造函数:
复制构造函数:复制构造函数接受一个指向对象的常量引用,当且仅当程序创建一个对象的副本时(常见于函数按值传递和返回对象),复制构造函数没有返回值,且一般调用该复制构造函数的对象为副本,副本对象通过调用复制构造函数来将参数对象中的内容复制给予自己使用,然后副本将值赋给函数中的局部变量,在函数结束后,该副本自毁(调用析构函数)
C_name (const C_name & class1)
复制构造函数没有返回值。
3.重载的赋值运算符
C_name & operator = (C_name &)
重载的赋值运算符当且仅当对象间赋值时被调用,返回类型可以是对象,也可以是对象的引用(一般常用对象的引用)*注意:这里提醒一下,重载的<<的运算符必须返回ostream对象的引用,因而返回ostream对象本身将导致上文的复制构造函数被调用,而ostream对象没有公用的复制构造函数。
重载赋值运算符在编写时应当注意都旧数据的妥当处理,尤其是使用动态内存分配储存的数据。
*注意:如果要编写以上的复制构造函数和赋值运算符,注意使用深度复制(即复制最底层的数据,例如不是仅仅的复制指针本身,而是要复制指针指向的内容)
- 复制构造函数、重载赋值运算符、类型转换小结
- C++ 类型自动转换 构造函数 复制构造函数 赋值操作运算符函数
- C++ 复制构造函数和赋值运算符重载函数
- 复制构造函数和重载赋值运算符
- C++ 中的赋值运算符重载和复制构造函数
- 复制构造函数,赋值运算符重载,列表初始化
- 转换构造函数与类型转换运算符重载
- C++ 拷贝构造函数(即复制构造函数)和赋值运算符重载(有说赋值构造函数)区别
- 复制构造函数、赋值操作符与隐式类类型转换
- 拷贝构造函数/重载赋值运算符
- 运算符重载:赋值、类型转换
- C++中拷贝(复制)构造函数和赋值运算符重载函数
- 复制构造函数与赋值运算符
- 复制构造函数和赋值运算符
- 面题1(类型转换关键字、sizeof(空类型)、复制构造、赋值运算符)
- C++的对象复制构造函数与赋值操作符重载的区别小结
- 运算符重载与复制构造函数
- 复制构造函数和重载赋值运算符的区别[原创]
- 访问权限控制
- qt环境的搭建
- 排序----4种排序
- IO流实战1
- HDU 6215 Brute Force Sorting(伪双向链表删边)
- 复制构造函数、重载赋值运算符、类型转换小结
- HDU-2017 ACM/ICPC Asia Regional Qingdao Online-补题
- Android开发--定位服务与百度地图
- nyoj 82 迷宫
- http://blog.csdn.net/hzwy23/article/details/8214029
- 欢迎使用CSDN-markdown编辑器
- STM32之串口DMA例程
- Unity中状态机模式的简单封装
- 关于编码(一):url的编码和解码问题