怎样构造一个正确高效的C++的类的构造函数
来源:互联网 发布:redis切换数据库命令 编辑:程序博客网 时间:2024/06/06 04:14
推荐一本C++经典好书:effetive c++,该篇文章部分来源于该书
类的构造函数看似简单,实则很有玄机,在构造一个类的构造函数时,只要遵循以下几步,便可以建立出一个正确的高效的构造函数:
1.了解C++编译器默默编写并调用了哪些函数,若不想使用编译器自动生成的函数, 就该明确拒绝(effctive c++条款5,6)
2.定义的构造函数不能指定其返回值的类型,也不能指定为void类型。
3.若要用类定义对象,则构造函数必须是公有型成员函数,否则类无法实例化。
若类仅用于派生其他类,则构造函数可定义为保护型成员函数(1.为什么private不行?我理解的是只用作一次派生是可以的,
但用作两次派生就不可以了, 因为若派生两次后,私有成员就没法再被访问了,也即基类的构造函数无法被调用了)。
4.倘若有指针型成员变量,则要对拷贝构造函数进行重写(见我的另一篇文章:“若类中有指针型数据成员,类的几个函数的重写”)
5..当构造函数重载或设定构造函数默认形参时,要注意避免出现二义性。
6..构造函数最好使用成员初始值列表,而不要在构造函数内使用赋值操作
7..考虑是不是要把构造函数设置为explict特性
8.决不在构造函数和析构过程中调用virtual函数
9.倘若是派生类的构造函数,则考虑是(1)用初始化成员列表值的形式调用特定的基类的构造函数还是(2)不提供初始化列表,默认调用基类的默认隐式构造函数
0 0
- 怎样构造一个正确高效的C++的类的拷贝构造函数和赋值函数
- 怎样构造一个正确高效的C++的类的构造函数
- [c++]类的构造函数
- C++-类的构造函数
- 怎样正确构造一个auto_ptr?
- 【C/C++】在一个类中重载另一个类的构造函数 ----构造函数是一个特殊的操作符
- 类的构造函数、拷贝构造函数
- [C++]子类的构造函数
- C 类对象的拷贝构造函数
- (C++)定义类的拷贝构造函数
- C++, 类的构造函数 语法练习
- 【C++】c++类的构造函数详解
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- Hadoop常见的45个问题解答记录
- 【剑指offer】链表相关-在o(1)时间删除链表结点13
- 与存储程序有关的数据字典
- JAVA基础必备(二)——数据类型
- linux下oracle 报错集合
- 怎样构造一个正确高效的C++的类的构造函数
- ARP:地址解析协议
- 如何修改myeclipse的主题背景
- Java去除字符串中的数字
- Java基础——访问权限
- 400错误 request header or cookie too large 修改nginx.conf 增加缓冲区
- sdf
- Spring -- 如何为applicationContext.xml 添加 util 的 *.xsd文件
- (一).NET 框架开发平台体系结构(笔记)