gpt4 book ai didi

c++ - 没有运算符 "[]"匹配这些操作数/没有模板代码

转载 作者:行者123 更新时间:2023-11-30 05:13:52 29 4
gpt4 key购买 nike

我正在尝试修复此问题中的示例代码:How to convert a 3D point into 2D perspective projection?

我已经纠正了大部分错误,但有一个让我感到困惑。

有一个带有 [] 运算符的矩阵类

float& operator[]( size_t index )
{
if (index >= 16) {
std::out_of_range e( "" );
throw e;
}
return data[index];
}

我在这段代码上遇到了一个不匹配的运算符错误:

inline Vector operator*( const Vector& v, const Matrix& m )
{
Vector dst;
dst.x = v.x*m[0] + v.y*m[4] + v.z*m[8] + v.w*m[12];
dst.y = v.x*m[1] + v.y*m[5] + v.z*m[9] + v.w*m[13];
dst.z = v.x*m[2] + v.y*m[6] + v.z*m[10] + v.w*m[14];
dst.w = v.x*m[3] + v.y*m[7] + v.z*m[11] + v.w*m[15];
return dst;
}

我无法弄清楚运算符定义有什么问题。

最佳答案

在提出问题后恰好 30 秒,我遇到了 operator* 正在接收一个 const Matrix 对象。

问题在于 operator[] 不是 const 函数。

留在这里,因为在 google 上只有两个不同的问题-

关于c++ - 没有运算符 "[]"匹配这些操作数/没有模板代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701494/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com