我想使用方法loadfile从File建立一个初始化我的属性(默认为实例)的默认构造。如果文件无法加载,我也想引发一个异常,如果是这种情况,我需要调用reset()函数。

对于以下代码,在尝试编译时,在try行中总是出现相同的错误。


Env::Env() **// default constructor of Env class**
: terrain **// terrain is an instance of a class I declared in hpp file**
{
try
    {Env::loadFile();} **// the method loadfile throws an error it failed**
catch(std::runtime_error)
    {std::cerr << " Error " << endl;
        Env::reset();} **// calls reset function if file loading failed**
}

最佳答案

编译器认为{ try ... }terrain的大括号初始列表。如果您打算默认构造它,请按照以下步骤操作:

: terrain{}
{
    ...

或这个:
: terrain()
{
    ...

或如果terrainclass的实例,则忽略整个成员初始化列表。

关于c++ - 默认构造函数编译错误,预期的ID不合格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36677554/

10-11 16:57