【发布时间】:2019-01-09 14:59:27
【问题描述】:
我正在为教育目的创建自己的矩阵库。 我创建了一个以
形式接受 4x4 矩阵的构造函数Matrix(float initMatrix[4][4]){
//init operation here
}
通过创建二维数组然后使用该变量初始化该对象来创建对象时,上述构造函数可以正常工作,例如:
float my_matrix[4][4] = {{...},{...},{...},{...}}; //shortened for brevity
Matrix matrix(my_matrix);
但是,执行以下操作时无法构建:
Matrix matrix({{...},{...},{...},{...}});
编译器告诉我
> cannot convert initializer list argument to 'float (*)[4]'
所以我添加了另一个构造函数,如下所示:
Matrix matrix(float matrix(*)[4]){}
我最终得到以下编译器错误。
error: C++ requires a type specifier for all declarations
Vytrix(float input(*)[4]){
有人可以告诉我一种设计构造函数的灵活方式,以便我可以以干净的方式初始化类吗?
【问题讨论】:
-
尝试使用浮动列表初始化
Matrix matrix(new float[4][4]{{...},{...},{...},{...}});。
标签: c++ arrays object multidimensional-array constructor