怎样构造一个正确高效的C++的类的构造函数

 我来答
从空去听8
2017-12-31 · TA获得超过7439个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5576万
展开全部
推荐一本C++经典好书:effetive c++,该篇文章部分来源于该书

类的构造函数看似简单,实则很有玄机,在构造一个类的构造函数时,只要遵循以下几步,便可以建立出一个正确的高效的构造函数:
1.了解C++编译器默默编写并调用了哪些函数,若不想使用编译器自动生成的函数, 就该明确拒绝(effctive c++条款5,6)

2.定义的构造函数不能指定其返回值的类型,也不能指定为void类型。
3.若要用类定义对象,则构造函数必须是公有型成员函数,否则类无法实例化。
若类仅用于派生其他类,则构造函数可定义为保护型成员函数(1.为什么private不行?我理解的是只用作一次派生是可以的,
但用作两次派生就不可以了, 因为若派生两次后,私有成员就没法再被访问了,也即基类的构造函数无法被调用了)。

4.倘若有指针型成员变量,则要对拷贝构造函数进行重写(见我的另一篇文章:“若类中有指针型数据成员,类的几个函数的重写”)
5..当构造函数重载或设定构造函数默认形参时,要注意避免出现二义性。

6..构造函数最好使用成员初始值列表,而不要在构造函数内使用赋值操作

7..考虑是不是要把构造函数设置为explict特性

8.决不在构造函数和析构过程中调用virtual函数

9.倘若是派生类的构造函数,则考虑是(1)用初始化成员列表值的形式调用特定的基类的构造函数还是(2)不提供初始化列表,默认调用基类的默认隐式构造函数
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式