加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 重载<<与重复符号链接错误

发布时间:2020-12-16 09:42:37 所属栏目:百科 来源:网络整理
导读:我的头快要爆炸了.我无法理解我做错了试图超载’运算符有两个类(punto和vector).这是代码,代码是在类头文件中写出的: std::ostream operator (ostream salida,const punto origen) { // Se escriben los campos separados por el signo salida "Punto -- x:
我的头快要爆炸了.我无法理解我做错了试图超载’<<<运算符有两个类(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;
    }

错误发生在链接步骤中,并且没有与类标题的双重链接,因为它是一个非常简单的示例.

解决方法

此特定错误意味着函数被编译为两个不同的转换单元.如果将函数定义放在标题中并将其包含在两个不同的源文件中,则很可能会发生这种情况.

从广义上讲,你有两个解决方案:

>在标题中声明,不定义您的函数.在源文件中定义(实现)它.>将您的函数声明为静态或内联.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读