c++ - 默认构造函数编译错误,预期的ID不合格

标签 c++ constructor compilation compiler-errors try-catch

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

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

Env.cpp:16:8: error: expected unqualified-id before '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/

相关文章:

C++ 错误清理

c++ - 您如何通过构造函数初始化所有对象?

javascript - 将方法分配给原型(prototype)不起作用

python - 防止 python 导入编译

javascript - config.codekit 恢复未检查输出/编译的 JS 文件

compilation - 编译 Hadoop 的问题

c++ - 动态数组和求值之和的问题

c++ - 有没有一种简单的方法来获取用 C++ 打印的字符数?

c++ - 计算多个 std::bitset<N> 中出现 1 的最快方法?

c++ - 构造函数、复制构造函数和堆栈创建 : C++