C++:数字常量之前的预期标识符
C++: expected identifier before numeric constant
我正在尝试使用 MTL 编写一个小程序,但是当我尝试使 MTL 矩阵成为类的成员时,我遇到了提到的错误。
#include <boost/numeric/mtl/mtl.hpp>
class myClass
{
private:
mtl::dense2D<double> Ke(6,6);
};
但是,main() 中的相同语句没有问题:
#include <boost/numeric/mtl/mtl.hpp>
int main(int argc, char** argv)
{
mtl::dense2D<double> Ke(6,6);
return 0;
}
我对C++很陌生,我认为这与 MTL 无关,但这就是我发生错误的地方。
您需要在构造函数的初始化器列表中执行此操作。
class myClass {
mtl::dense2D<double> Ke;
public:
myClass() : Ke(mtl::dense2D<double>(6, 6)) { }
};
因为当你声明
mtl::dense2D<double> Ke;
你只应该声明它,而不是创建它。这是构造函数在C++的工作:
class myClass
{
public:
myClass() // constructor
: Ke(6, 6) // here we use the constructor initializer
{
}
private:
mtl::dense2D<double> Ke; // declaration
};
你不能在类范围内初始化变量,你需要在构造函数中这样做。 更改此设置:
class myClass
{
private:
mtl::dense2D<double> Ke(6,6);
};
对此——
class myClass
{
public:
myClass() : Ke(6,6) { }
private:
mtl::dense2D<double> Ke;
};
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- #ifdef和未声明的标识符
- 最高有效数字侧的第N位
- 按唯一标识符描述数字列表
- Vector中数字常量之前应为标识符
- 数字常量之前的预期标识符
- [错误]数字常量之前的预期标识符.-setlocale
- 标识符名称中的数字没有错
- C++构造函数:数字常量之前的预期标识符
- 如何将目录路径转换为唯一的数字标识符 (Linux/C++)
- 有字符串或数字的标识符吗
- c++编译错误预期的标识符在数字常量之前
- c++在数字常量之前表示期望的标识符
- C++:数字常量之前的预期标识符
- 通过类型标识符表示类的数字唯一标识符