C++ 如何修正结构向量初始化错误

C++ 如何修正结构向量初始化错误,c++,vector,c++98,C++,Vector,C++98,这是我的密码。(C++98) struct节点 { 字符串名; 字符串帮助; 弦作用; 字符串pName; 字符串pHelp; }; 矢量命令{ 节点{“name1”、“help1”、“”、“”、“”、“”}, 节点{“name2”、“help2”、“action2”、“pname”、“phelp”} }; 错误是 函数定义不声明参数 您可能正在使用旧的编译器,但遵循新的教程或书籍。gcc 5.4.0给出了以下内容: test.cpp:12:27: warning: extended init

这是我的密码。(C++98)

struct节点
{
字符串名;
字符串帮助;
弦作用;
字符串pName;
字符串pHelp;
};
矢量命令{
节点{“name1”、“help1”、“”、“”、“”、“”},
节点{“name2”、“help2”、“action2”、“pname”、“phelp”}
};
错误是

函数定义不声明参数


您可能正在使用旧的编译器,但遵循新的教程或书籍。gcc 5.4.0给出了以下内容:

test.cpp:12:27: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
    vector <node> commands {
                           ^
test.cpp:13:10: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
      node{"name1","help1", "", "" , ""}, node{"name2", "help2","action2",    "pname", "phelp"}
          ^
test.cpp:13:46: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
      node{"name1","help1", "", "" , ""}, node{"name2", "help2","action2",    "pname", "phelp"}
                                              ^
test.cpp:14:6: error: in C++98 ‘commands’ must be initialized by constructor, not by ‘{...}’
      };
test.cpp:12:27:警告:扩展初始值设定项列表仅适用于-std=c++11或-std=gnu++11
矢量命令{
^
test.cpp:13:10:警告:扩展初始值设定项列表仅适用于-std=c++11或-std=gnu++11
节点{“name1”、“help1”、“”、“”、“”、“”},节点{“name2”、“help2”、“action2”、“pname”、“phelp”}
^
test.cpp:13:46:警告:扩展初始值设定项列表仅在-std=c++11或-std=gnu++11时可用
节点{“name1”、“help1”、“”、“”、“”、“”},节点{“name2”、“help2”、“action2”、“pname”、“phelp”}
^
test.cpp:14:6:错误:在C++98中,“命令”必须由构造函数初始化,而不是由“{…}”初始化
};
这清楚地表明,您必须至少使用c++11,或者需要为
节点
提供一个构造函数,该构造函数包含五个参数,并使用旧样式来构造对象


除非你有非常具体的理由坚持使用c++98,否则我认为使用c++11是最好的选择。否则,请遵循教授C++98的书籍或教程,或者至少描述C++98中的不同之处,以避免此类问题。

您必须为编写一个带有5个参数的
节点
构造函数。另外,您的代码不是C++98。@S.M谢谢。我是C++新手。这段代码错了吗?这是错误的C++98。C++中使用的构造现在经常依赖于方言。
test.cpp:12:27: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
    vector <node> commands {
                           ^
test.cpp:13:10: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
      node{"name1","help1", "", "" , ""}, node{"name2", "help2","action2",    "pname", "phelp"}
          ^
test.cpp:13:46: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
      node{"name1","help1", "", "" , ""}, node{"name2", "help2","action2",    "pname", "phelp"}
                                              ^
test.cpp:14:6: error: in C++98 ‘commands’ must be initialized by constructor, not by ‘{...}’
      };