不要通过常量引用传递浮点数,而是通过值传递它们。
我假设您想返回数组以便可以进行索引?然后不要从矩阵类返回数组。相反,超载[]
运营商什么的。
另外,我不会使用 16 个成员变量,而是使用一个数组。使索引变得更加容易。
我可能会这样做:
class Matrix4d
{
float matrix[4][4];
public:
Matrix4d(float m00, float m01, float m02, float m03,
float m10, float m11, float m12, float m13,
float m20, float m21, float m22, float m23,
float m30, float m31, float m32, float m33)
{
matrix[0][0] = m00;
matrix[0][1] = m01;
matrix[0][2] = m02;
matrix[0][3] = m03;
matrix[1][0] = m10;
matrix[1][1] = m11;
matrix[1][2] = m12;
matrix[1][3] = m13;
matrix[2][0] = m20;
matrix[2][1] = m21;
matrix[2][2] = m22;
matrix[2][3] = m23;
matrix[3][0] = m30;
matrix[3][1] = m31;
matrix[3][2] = m32;
matrix[3][3] = m33;
}
float* operator[](int i)
{
return matrix[i];
}
const float* operator[](int i) const
{
return matrix[i];
}
};
int main()
{
Matrix4d test(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 16);
test[3][2] = 15;
}