在C++中初始化map并将类成员变量设置为空?

Mar*_*nen 7 c++ coding-style initialization map set

我有一个带有两个成员变量的C++类

std::map<int, Node*> a;
Run Code Online (Sandbox Code Playgroud)

std::set<Node*> b;
Run Code Online (Sandbox Code Playgroud)

我大学使用的样式检查器要求在类的构造函数中初始化所有成员变量.如何能够将这些成员变量ab初始化中它们是在类的构造函数是空的?

BЈо*_*вић 14

像这样:

class A
{
  public :

  A() : s(),
        m()
  {
  }


  std::set< int > s;
  std::map< int, double > m;
};
Run Code Online (Sandbox Code Playgroud)


CB *_*ley 5

由于 和std::set都有std::map“用户”声明的默认构造函数,因此它们将在您构建类时隐式初始化。您不必做任何特殊的事情来符合“风格”指南。