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

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

本文关键字:文件 两个 C++98 VS2010 字符串 数组      更新时间:2023-10-16

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

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

我尝试了标题:

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();
  };

这是包装器.cpp(8):错误 C2059:语法错误:"]"

我在网上搜索,但我找不到一个严重的例子来证明这一点。你不用类吗?(只是一个反问句)

编辑:初始化。列表也失败:

#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();
  };

包装器.cpp(7):错误 C2143:语法错误:在"{"之前缺少")"

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

例如,像这样:

.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" };