我最近才刚开始回到C ++,并了解了初始化列表。这似乎是初始化成员的标准方法。话虽如此,我对此有两个问题:
设置私有成员变量时(并且仅在构造函数中使用老式的设置)时,是否有理由不使用此方法。
我们从中得到什么确切的好处?有人告诉我“速度”,但为什么不呢?
编辑:作为参考,我更具体地讲使用它们进行类初始化。
小智 9
初始化列表与调用成员变量的ctor有关。如果进行分配,则通过使用assign函数来更改实例的值。显然,这两个是不同的功能。
在某些情况下,您无法将值分配给ctor中的成员变量。
当创建不带init-list的实例时,成员变量将运行其ctor,然后如果您为其赋值,则进行赋值。这是一个细微的差异,但是由于ctor首先运行,而Assign运行2nd,则可能会产生一定的损失-这是不必要的开销。