C++:数字常量之前的预期标识符

Psi*_*rus 3 c++ matrix

我正在尝试使用MTL编写一个小程序,但是当我尝试使MTL Matrix成为一个类的成员时,我得到了上述错误.

#include <boost/numeric/mtl/mtl.hpp>

class myClass
{
private:
    mtl::dense2D<double> Ke(6,6);
};
Run Code Online (Sandbox Code Playgroud)

但是,main()中的相同语句没有问题:

#include <boost/numeric/mtl/mtl.hpp>

int main(int argc, char** argv)
{
    mtl::dense2D<double> Ke(6,6);
    return 0;    
}
Run Code Online (Sandbox Code Playgroud)

我对C++很陌生,我认为这与MTL无关,但这就是我发生错误的地方.

Cat*_*lus 6

您需要在构造函数的初始化列表中执行此操作.

class myClass {
    mtl::dense2D<double> Ke;
public:
    myClass() : Ke(mtl::dense2D<double>(6, 6)) { }
};
Run Code Online (Sandbox Code Playgroud)

  • 不是myClass():Ke(6,6){}够吗? (7认同)