我正在用 c++ 制作一个三维矢量类(称为Vector3
)。现在,我正在尝试重载流插入运算符 ( <<
),以便我可以一次直接打印所有向量的组件。我从MSD复制了 sintax ,但出现 3 个错误。
错误:将“const Vector3”作为“float Vector3:: getX() ”的“this”参数传递会丢弃限定符 [-fpermissive]
错误:将“const Vector3”作为“float Vector3:: getY() ”的“this”参数传递丢弃限定符 [-fpermissive]
错误:将 'const Vector3' 作为 'float Vector3:: getZ ()' 的 'this' 参数传递丢弃限定符 [-fpermissive]
(差异以粗体标记)
在Vector3.h
public 下,我输入了这个函数声明:
friend ostream& operator<<(ostream &os, const Vector3 &vector);
在Vector3.cpp
中,我实现了它:
ostream& operator<<(ostream& os, const Vector3& vector)
{
os << "(" << vector.getX() << ", " << vector.getY() << ", " << vector.getZ() << ")" << endl;
return os;
}
(x, y, z)
它应该根据 x、y 和 z 变量打印出类似的内容。
附带说明一下,vector.getX()
行不应该使用->
点而不是点,因为向量对象是地址指针吗?