我在看一些基本的向量库,这个类有两个运算符*
的签名,但是我不能理解这两者之间的区别。
vec4 vec4::operator*(float c) const {
return vec4(data[0] * c, data[1] * c, data[2] * c, data[3] * c);
};
vec4 operator*(float c, const vec4 &v) {
return vec4(c * v[0], c * v[1], c * v[2], c * v[3]);
};
>
两者使用时外观如何?
为什么一个使用vec4::operator
而另一个仅使用operator*
?
谢谢你!
正如您在签名末尾看到的,一个具有const
属性,而另一个没有。这意味着指向这些方法所在的类的指针在其中一个方法中是常量的,因此它的成员将不能更改值。