怎样构造一个正确高效的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
原创粉丝点击