我的脑袋快要爆炸了。我无法理解我做错了试图超载'<<<运算符有两个类(punto和vector)。这是代码,代码写在类头文件中:
std::ostream& operator << (ostream& salida, const punto& origen)
{
// Se escriben los campos separados por el signo
salida << "Punto --> x: " << origen.xf << " , y: " << origen.yf;
return salida;
}
std::ostream& operator << (ostream& salida, const vector& origen)
{
// Se escriben los campos separados por el signo
salida << "Punto --> x: " << origen.p1.xf << " , y: " << origen.p1.yf;
return salida;
}
错误发生在链接步骤中,并且没有与类标题的双重链接,因为它是一个非常简单的示例。
答案 0 :(得分:7)
此特定错误表示函数被编译为两个不同的转换单元。如果您将函数定义放在标题中并将其包含在两个不同的源文件中,则很可能会发生这种情况。
从广义上讲,你有两个解决方案: