我想使用方法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()
{
...
或如果
terrain
是class
的实例,则忽略整个成员初始化列表。关于c++ - 默认构造函数编译错误,预期的ID不合格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36677554/