0

这可能是一个非常基本的问题,但我从来没有正确理解它。当我声明成员变量时,我通常在一个类中做

class Bloke
   {
   public:
   Bloke(): age(24) {}
   int age;
   }

所以,我通常在分号后用“membera()、memberb()”等声明成员变量。随着时间的推移,我变得有点懒惰,开始也直接在 {} 中包含成员变量的声明,即

Bloke(){age=24;}
int age;

甚至在构造函数中单独在类之外。如果这是错误的,有人可以解释一下吗?谢谢。

4

1 回答 1

0

不,这没有错,直到 c++11 这是唯一的方法。然而,大多数人会认为第一种方法对 c++11 来说更简单、更惯用,它被称为构造函数委托。在 c++11 中,您还可以对某些类型进行内联初始化,如下所示:

class Bloke
{
   public:
   Bloke():{}
   int age = 24;
};

年龄的值将是 24,除非您在其他地方为所有已初始化的对象更改它。IMO 构造函数委托应用于任何适用的情况,并保存构造函数的主体以进行额外工作。

于 2013-10-09T01:56:14.370 回答