const struct config{
    private:
        std::string file;
        config() : file(getConfig()) {}
    public:
        std::string failsafe = file.substr(file.find("failsafe") + 12);
        failsafe.resize(failsafe.find("\""));
        size_t ran, price, expiry;
    } *ini;


第7行-错误:此声明没有存储类或类型说明符。
我很困惑为什么我不能访问故障安全?

最佳答案

您的代码有几个问题。我放入了您的代码,并在MSVC2010中添加了一些伪代码(即:getConfig)以对其进行测试和修复。


在几乎所有情况下,Constructors(config())have to be public。毕竟如何
否则将访问它以初始化对象。我将构造函数移到了公共区域。
代码(find(),substr())必须在函数内部。 main(),对象的构造函数或某些函数/方法。我将您的代码移到了构造函数中。
我没有添加任何内容来处理错误(例如找不到所需的子字符串),但是您可以考虑添加一些代码来处理这些情况。




const struct config{
private:
    std::string file;
public:
    config() : file(getConfig()) {
        failsafe = file.substr(file.find("failsafe") + 12);
        failsafe.resize(failsafe.find("\""));
    }
    std::string failsafe;
    size_t ran, price, expiry;
} *ini;

08-06 00:27