如何修复用作初始化错误的数组?

布鲁克曼

save.cpp

#include "save.h"
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
Save::Save()
{
}

我已经注释了所有功能,并从Save :: Save中删除了竞争内容,但这并不影响该错误。
保存.h

#ifndef SAVE_H
#define SAVE_H
#include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
class Save
{
    public:
        Save();
        void vDisplay();
        char cDecode();
        bool bFileExists(const string& crsFileName);
        const char ccTab = 9;
        const char ccHelp[5] = "help";
        const char ccNo[3] = "no";
        const char ccStart[6] = "start";
        const char ccQuit[5] = "quit";
        const char ccYes[4] = "yes";
};
#endif // SAVE_H

我使用g ++ 4.9并在C ++ 11中进行编译,它在save.cpp的第6行上给了我这个错误,尽管如此,我已经检查了它,但是我对c ++还是陌生的,这不是很确定。初始化器。
这似乎是由我希望对整个类可用的常量成员的非静态数据成员初始化引起的编译器错误。

埃雷里卡

该错误消息令人困惑。它指向构造函数(实际上甚至没有初始化列表),即使真正的罪魁祸首是这一行(及其后的类似行):

const char ccHelp[5] = "help";

GCC手册说该功能自4.7开始受支持,但4.9显然无法编译您的程序。那似乎是编译器错误。请记住,直到GCC 5.1为止,对C ++ 11的支持都是试验性的。是您的程序重现4.9中的编译器错误,是您的程序在5.1中可以正常编译。

因此,您的选择是1)升级编​​译器或2)使用丑陋的初始化形式,该形式似乎在4.9中有效:

const char ccHelp[5] = {'h','e','l','p','\0'}; // ugly :(

附带说明:您使用std::string,但忘记了在<string>哪里std::string定义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何修复构造函数中初始化 E 元素数组的错误?

数组初始化错误

错误数组用作初始化程序,我不知道错误

boost ::任何库均无法编译:“数组用作初始化程序”错误

Swift NSCountedSet初始化与数组错误?

Java中的数组初始化错误

初始化数组的索引越界错误

如何修复“ NameError:未初始化的常量Thor :: Base”错误?

如何修复在初始化新 Angular 项目时发生的这些错误?

如何修复Apache Ignite中的“无法初始化org.apache.ignite.IgniteJdbcThinDriver类”错误?

如何修复“无法为类型'MBMovingGround调用初始化程序?' 没有参数”错误迅速

如何修复此子类的初始化程序列表错误?

如何修复C中的“条件跳转或移动取决于未初始化的值”错误

如何修复此错误“必须初始化不可为空的变量 '_mediaQueryData'。”

如何修复错误“无法在初始化程序中访问实例成员‘_remoteConfigService’。”

修复了不实现 Copy 或 Default 特征的数组初始化

修复由于多次初始化Firebase而导致的Firebase错误

如何初始化对象的主数组?

如何初始化数组字段的元素?

VB - 如何初始化字符数组?

如何初始化结构数组的结构?

如何初始化3维数组

如何初始化静态数组?

如何初始化复杂对象的数组?

如何初始化和使用数组

如何初始化通用数组?

如何初始化对象向量数组

如何初始化这些数组类型?

如何就地初始化数组?