首页 相关文章 关于初始化C++类成员

关于初始化C++类成员


  在使用C++编程的过程当中,经常需要对类成员进行初始化,通常的方法有两种: 第一种方法: CMYClass::CSomeClass(){x=0;y=1;}第二种方法: CSomeClass::CSomeClass() : x(0), y(1){}本文将要探讨这两种方法的异同以及如何使用这两种方法。 从技术上说,第二种方法比较好,但是在大多数情况下,两者实际上没有什么区别。第二种语法被称为成员初始化列表,之所以要使用这种语法有两个原因:一个原因是必须这么做,另一个原因是出于效率考虑。 让我们先看一下第一个原因——必要性。设想你有一个类成员,它本身是一个类或者结构,而且只有一个带一个参数的构造函数。 class CMember {public:CMember(int x) { ... }}; 因为CMember有一个显式声明的构造函数,编译器不产生一个缺省构造函数(不带参数),所以没有一个整数就无法创建CMember的一个实例。 CMember* pm = new CMember;// 出错!!CMember* pm = new CMember(2); // OK 假如CMember是另一个类...[ 查看全文 ]

2016-02-19 标签:

关于初始化C++类成员的相关文章

手机页面
收藏网站 回到头部