怎样构造一个正确高效的C++的类的拷贝构造函数和赋值函数
来源:互联网 发布:mac系统pages怎么保存 编辑:程序博客网 时间:2024/06/05 16:08
推荐一本C++经典好书:effetive c++,该篇文章部分来源于该书
拷贝构造
1.了解C++编译器默默编写并调用了哪些函数,若不想使用编译器自动生成的函数,就该明确拒绝(effctive c++条款5,6)
2. 拷贝构造函数的参数可以是一个或者多个,但做起的第一个参数必须是类的引用对象,需要注意的是:一旦定义了拷贝构造函数,则隐式的默认拷贝构造函数便不再有效 了,并且隐式的默认构造函数也不再有效了。
3 拷贝构造函数无函数返回值
4.倘若有指针型成员变量,则要对拷贝构造函数进行重写(见我的另一篇文章:“若类中有指针型数据成员,类的几个函数的重写”)
5.当是派生类构造拷贝构造函数时,注意:复制对象时勿忘其每一部分,
解决办法:effctive c++条款12
赋值
1.了解C++编译器默默编写并调用了哪些函数,若不想使用编译器自动生成的函数, 就该明确拒绝(effctive c++条款5,6)
2.赋值运算符不能重载为友元函数,只能重载为一个非静态成员函数
3.赋值运算符重载函数是唯一一个不能被继承的运算符函数。.
4.令operator=返回一个引用,这样就可以处理连锁赋值的问题,因为返回引用则其可
以作为左值
返回值类型是引用,而不是对象,这样,赋值表达式就可以作为左值,比如
(x=y)++;倘若赋值函数返回的是类的对象,那么赋值后就不能当作左值了。
(effective c++条款10)
5在operator中处理“自我赋值”(.effctive c++条款11)
6.当类中有指针型数据成员时,赋值函数要进行重写(见我的另一篇文章:“若类中有指针型数据成员,类的几个函数的重写”)
7.当构造的是派生类的赋值函数时:复制对象时勿忘其每一部分,effctive c++条款12
- 怎样构造一个正确高效的C++的类的拷贝构造函数和赋值函数
- 怎样构造一个正确高效的C++的类的构造函数
- C++类的拷贝构造函数和赋值构造函数
- string类的构造函数,析构函数,拷贝构造函数和赋值构造函数
- 类的拷贝构造函数、赋值函数
- 拷贝构造函数和赋值构造函数的异同
- 拷贝构造函数和赋值构造函数的异同
- 拷贝构造函数和赋值构造函数的异同
- 拷贝构造函数和赋值构造函数的异同
- 拷贝构造函数和赋值构造函数的区别
- 拷贝构造函数和赋值构造函数的区别
- 赋值构造函数和拷贝构造函数的区别
- 对于拷贝构造函数和赋值构造函数的理解
- 赋值构造函数和拷贝构造函数的区别
- 对于拷贝构造函数和赋值构造函数的理解
- 拷贝构造函数和赋值构造函数的异同
- 拷贝构造函数和赋值构造函数的异同
- 对于拷贝构造函数和赋值构造函数的理解
- Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- kali下chntpw修改清除windows密码(其实就是PE功能)
- Java输出算术表
- Servlet生命周期
- SSH框架中使用log4j的方便之处
- 怎样构造一个正确高效的C++的类的拷贝构造函数和赋值函数
- 四个例子实战讲解.htaccess文件rewrite规则
- 马云恨马化腾,马化腾恨周鸿祎,周鸿祎恨李彦宏,贵圈真乱!
- Office Visio 2013、Office Project Pro 2013 简体中文大客户版32位、64位下载
- 四种方案解决ScrollView嵌套ListView问题
- 二叉树创建、遍历、求深度--C语言实现
- 爱我的人违法了怎么办
- MyEclipse6.5-8.5序列号生成代码
- C语言经典算法100例-020-小球自由下落问题