如何将字符串数组分成两个文件M C++98 / VS2010

How separate Array of strings into two filesM C++98 / VS2010

如果我有两个文件 myclass.h 和 myclass.cpp 如何将此代码分离为 class 成员的声明和构造函数的实现 我需要在方括号 {} 中设置值?

std::string predefinedArgs[] = { "Some", "Other", "Strings" };

我试过了header:

class Wrapper {
    public:
        std::map<std::string,std::string> arguments;
        Wrapper(int argc, char ** argv);
    private:
        int argc; char ** argv;
        std::vector<std::string> args;
        std::string predefinedArgs[12];
        void parseArguments();
};

和.cpp:

Wrapper::Wrapper(int argc, char ** argv):
  argc(argc),
  argv(argv),
  args(argv, argv+argc)
  {
      this->predefinedArgs[] = { "Jan", "Feb", "Mar", "April", "May", "June", "July", 
    "Aug", "Sep", "Oct", "Nov", "Dec" };*/
     // this->parseArguments();
  };

即 wrapper.cpp(8):错误 C2059:语法错误:']'

我在网上搜索过,但没有找到一个严肃的例子来说明这一点。 你不使用 classes 吗? (只是一个反问)

编辑: 在里面。列表也失败了:

#include "wrapper.h"

Wrapper::Wrapper(int argc, char ** argv):
  argc(argc),
  argv(argv),
  args(argv, argv+argc),
  predefinedArgs({ "Jan", "Feb", "Mar", "April", "May", "June", "July", 
    "Aug", "Sep", "Oct", "Nov", "Dec" })
  {
      // this->parseArguments();
  };

wrapper.cpp(7):错误 C2143:语法错误:在“{”

之前缺少“)”

predefinedArgs 的名字来看,我猜你可能会考虑使用 static const 成员(或其他解决方案)并将其完全放在构造函数之外。

E. G。像这样:

.hpp

class Wrapper {
    // ...
    private:
        static const std::string predefinedArgs[12];
};

.cpp

const std::string Wrapper::predefinedArgs[12] = { "Jan", "Feb", "Mar", "April", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec" };