【发布时间】:2014-09-06 03:18:18
【问题描述】:
我已经尝试浏览了许多其他主题,但似乎没有一个能解决我的具体问题。
我有一个 3X3 矩阵类,并有以下代码允许用户访问矩阵的行:
V3& M33::operator[](int i)
{
return rows[i]; // rows is a Vector3 array
}
当我尝试这样做时,在我的向量类中:
void rotateAboutArbitraryAxis(int axis, float degrees)
{
if(axis == 0)
{
M33 m();
V3 row0(1.0f, 0.0f, 0.0f);
V3 row1(0.0f, cos(degrees), -sin(degrees));
V3 row2(0.0f, sin(degrees), cos(degrees));
m[0] = row0; //error
m[1] = row1; //error
m[2] = row2; //error
}
}
在上面三个标记的地方标记了一个错误。
智能感知告诉我“表达式必须是指向完整对象类型的指针” 而实际的构建错误是“下标需要数组或指针类型。”
有人知道这是为什么吗?如果需要,我可以提供更多信息。
谢谢!
【问题讨论】:
-
看起来像most vexing parse。
-
M33 m();-->M33 m;?
标签: c++ visual-c++ matrix vector operator-overloading