C++类内初始化
2021-04-13
2 min read
C++类内初始化
引言
当成员变量参数较多,很可能在构造函数中忘记初始化某些成员变量,当需要访问某些变量时可能会产生意想不到的行为,故需一种简明的方式避免此问题的发生;
类内初始化
对于上述问题,可使用C++11中特性——类内初始化,防止遗漏某些变量的初始化,示例代码如下:
class Demo {
public:
Demo() = default;
Demo(const int a, const double b);
~Demo() = default;
// ...
private:
int m_a = 1;
double m_b = 2.0;
X* m_c = nullptr;
std::vector<int> m_d = {1, 2, 3};
};
Demo::Demo(const int a, const double b) : m_a(a), m_b(b)
{
// do nothing
}
// ...
int main()
{
Demo demo1; // 此时各成员变量已经赋上相应初值
Demo demo2(1, 2.0);
// do something
return 0;
}
结论
当类中成员变量较多时,可适当使用类内初始化来避免遗漏某些成员变量初始化值;
版权声明:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!