C++ 错误:非整数类型的静态数据成员的类内初始化无效';常量字符[]和#x27;

C++ 错误:非整数类型的静态数据成员的类内初始化无效';常量字符[]和#x27;,c++,C++,我的私人班级成员犯了很多错误。请帮我解决这些问题 错误:此处不允许在“{”标记之前使用括号括起的初始值设定项 错误:非整数类型“const char[]”的静态数据成员的类内初始化无效 错误:“字母_ARR”尚未声明 错误:“字母_ARR”尚未声明 错误:在“+”标记之前应为“,”或“…” 错误:ISO C++禁止成员“SNTNC*SMLRTYAX SHILDLDORDER”初始化 错误:使“SNTNC\u SMLRTY\u THRSHLD\u DEFAULT”为静态** private:

我的私人班级成员犯了很多错误。请帮我解决这些问题

错误:此处不允许在“{”标记之前使用括号括起的初始值设定项

错误:非整数类型“const char[]”的静态数据成员的类内初始化无效

错误:“字母_ARR”尚未声明

错误:“字母_ARR”尚未声明

错误:在“+”标记之前应为“,”或“…”

错误:ISO C++禁止成员“SNTNC*SMLRTYAX SHILDLDORDER”

初始化 错误:使“SNTNC\u SMLRTY\u THRSHLD\u DEFAULT”为静态**

private:
    std::vector<std::string> files_vec; 
    std::vector<std::string> get_file_sntncs(std::fstream&);
    std::vector<std::string> get_sntnc_wrds(const std::string&);
    double sntnc_smlrty_qtnt(std::vector<std::string>, std::vector<std::string>);
    static const char LETTERS_ARR[] = {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'."};
    static const std::set<char> LETTERS_SET(LETTERS_ARR, LETTERS_ARR + sizeof(LETTERS_ARR)/sizeof(char));
    double sntnc_smlrty_thrshld; 
    static const double SNTNC_SMLRTY_THRSHLD_DEFAULT = 0.5; 
private:
std::矢量文件;
std::vector get_file_sntncs(std::fstream&);
std::vector get_sntnc_wrds(const std::string&);
双sntnc_smlrty_qtnt(std::vector,std::vector);
静态常量字符字母_ARR[]={“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz.”;
静态常量std::set LETTERS_set(LETTERS_ARR,LETTERS_ARR+sizeof(LETTERS_ARR)/sizeof(char));
双sntnc_smlrty_thrshld;
静态常数双SNTNC\U SMLRTY\U THRSHLD\U默认值=0.5;

在C++中,不允许为非整数非枚举类型的静态成员提供类初始化器。对于这些成员,初始化器是在定义点提供的,而不是在声明点。
或者,正如@juanchopanza在注释中指出的,您可以将静态成员声明为
constexpr
,而不是
const
(假设您使用的是C++11编译器),这将允许您像在原始代码中一样为此类成员提供类内初始值设定项。

除非它们是
constexpr
,IIRC。