T230621 Member Initialization
这次谈成员初始化。
C++存在 3 种方式初始化成员,分别为:
ctor member initializer list
ctor body
default member initializer (in-class initializer)
关于 ctor member initializer list 和 ctor body 这2种方式,记得 Effective C++ 有条款单独讨论过,但那书太早了,只包含C++98/03,default member initializer 是C++11才有的方式。
在C++98,只有 static const int 才能够直接在类内直接初始化,它可以保证初始化是在编译期完成的。
// C++98
struct S {… Continue Reading