C++ 11 标准——在头文件中初始化成员变量

C++ 11 standards - initialize member variables in header

是否需要在头文件中用nullptr或Q_NULLPTR初始化成员变量?如果是,为什么如此需要,当我正确初始化它时,构造函数初始化列表。

在MyDialog.h,

QDialog* m_Dialog = Q_NULLPTR;

在MyDialog.cpp...我

MDialog()::MDialog()
  : QDialog()
  , m_Dialog(new QDialog())
  { 
  }

在析构函数中,我将 delete n 设置为 nullptr。

为什么需要以下内容?

QDialog* m_Dialog = Q_NULLPTR;

不需要使用

QDialog* m_Dialog = Q_NULLPTR;

初始化成员变量。

上面的句法形式在有许多构造函数时很有用,在这些构造函数中您想要用相同的值初始化成员变量。它减少了重复代码。

如果您的 class 具有您发布的唯一构造函数,您可以将成员变量声明保留为

QDialog* m_Dialog;

不会对您的程序产生不利影响。