我正在创建一个类,该类应该具有一个矩阵,作为从本征库中的MatrixXd
类型的 header 类中声明的 protected 成员。问题是,如果我将其声明为MatrixXd name(5, 5);
,其中矩阵的尺寸在方括号之间,则编译器会将其视为类的方法,而不是成员的方法。
你能帮助我吗?
最佳答案
您所描述的称为the most vexing parse,意味着应该将所有可以解析为函数的内容都包含在内。我们可以通过更改语法来解决此问题。
在C++ 11中,我们可以使用初始化程序列表语法:
MatrixXd name{5, 5};
否则,强制转换参数之一也可能会起作用:
MatrixXd name(int(5), 5);
关于c++ - 编译器认为我的MatrixXd构造是函数而不是成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45863415/