24小时热门版块排行榜    

查看: 3082  |  回复: 7

自来清风

银虫 (小有名气)

[求助] error C2371: 重定义;不同的基类型 已有2人参与

在头文件中:
        /*复数定义*/
        typedef struct
        {
                double re;
                double im;
        }COMPLEX;
COMPLEX Add(COMPLEX c1, COMPLEX c2);
再cpp文件中:
COMPLEX CImageProc::Add(COMPLEX c1, COMPLEX c2)
{
        COMPLEX c;
        c.re=c1.re+c2.re;
        c.im=c1.im+c2.im;
        return c;
}
然后编译出现错误(vc2008中),重定义函数Add(),可是明明没有重定义啊
ps:现在在准备写对一幅二维数字图象进行移中和变换和各种滤波器函数(可是刚定义复数就报错了),如果有做过的人可否发带代码给我看下。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
COMPLEX Add(COMPLEX c1, COMPLEX c2);
再cpp文件中:
COMPLEX CImageProc::Add(COMPLEX c1, COMPLEX c2)
---------------------------
上面的Add不在类里面,是全局函数
下面的Add在CImageProc类里面,是类函数
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2014-04-10 21:22:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rbs

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
把错误信息贴出来。这个代码不应该是重定义。
如果你想做数字图像处理,使用OpenCV吧,不要自己写函数。
3楼2014-04-10 21:40:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自来清风

银虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2014-04-10 21:22:09
COMPLEX Add(COMPLEX c1, COMPLEX c2);
再cpp文件中:
COMPLEX CImageProc::Add(COMPLEX c1, COMPLEX c2)
---------------------------
上面的Add不在类里面,是全局函数
下面的Add在CImageProc类里面,是类函数

上面我可能没有说清楚。
CImageProc是我最初定义的一个图像处理类,COMPLEX Add(COMPLEX c1, COMPLEX c2) 是我添加的这个类的成员函数(我并没有定义一个复数类)
我是在ImageProc.h中申明,ImageProc.cpp中定义,不是全局函数。
4楼2014-04-11 11:09:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自来清风

银虫 (小有名气)

引用回帖:
3楼: Originally posted by rbs at 2014-04-10 21:40:54
把错误信息贴出来。这个代码不应该是重定义。
如果你想做数字图像处理,使用OpenCV吧,不要自己写函数。

以下这些错误都是我添加了Add()之后才有的
1>.\ImageProc.cpp(1024) : error C2143: 语法错误 : 缺少“;”(在“CImageProc::Add”的前面)
1>.\ImageProc.cpp(1024) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>.\ImageProc.cpp(1025) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>.\ImageProc.cpp(1025) : error C2556: “int CImageProc::Add(CImageProc::COMPLEX,CImageProc::COMPLEX)”: 重载函数与“CImageProc::COMPLEX CImageProc::Add(CImageProc::COMPLEX,CImageProc::COMPLEX)”只是在返回类型上不同
1>        d:\大三下课件\showbmp更改4.4-9\showbmp\ImageProc.h(75) : 参见“CImageProc::Add”的声明
1>.\ImageProc.cpp(1025) : error C2371: “CImageProc::Add”: 重定义;不同的基类型
1>        d:\大三下课件\showbmp更改4.4-9\showbmp\ImageProc.h(75) : 参见“CImageProc::Add”的声明
这是我的作业,目的是锻炼对各种函数的理解和实现能力,便于以后的硬件实现,所以所有函数必须得自己写。
5楼2014-04-11 11:18:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rbs

木虫 (小有名气)

【答案】应助回帖

你没有贴全部的全代码,但是1025的C2556错误应该是关键。
你定义了两个add函数,而这两个add函数只有返回值是不同的,其他都一样,这就是一个重复定义的错误。
6楼2014-04-11 11:57:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自来清风

银虫 (小有名气)

引用回帖:
6楼: Originally posted by rbs at 2014-04-11 11:57:58
你没有贴全部的全代码,但是1025的C2556错误应该是关键。
你定义了两个add函数,而这两个add函数只有返回值是不同的,其他都一样,这就是一个重复定义的错误。

我确定只添加了一个,其他代码和这个不相关,就没有贴。
7楼2014-04-11 18:08:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★ ★ ★
自来清风: 金币+5, 有帮助 2014-07-26 22:33:38
1>.\ImageProc.cpp(1025) : error C2556: “int CImageProc::Add(CImageProc::COMPLEX,CImageProc::COMPLEX)”: 重载函数与“CImageProc::COMPLEX CImageProc::Add(CImageProc::COMPLEX,CImageProc::COMPLEX)”只是在返回类型上不同
--------------------------------
注意看这个错误,c++不允许2个函数输入参数完全一样,而只是返回值不同.要重载函数,必须输入参数有变化,因为编译器需要用参数类别/个数这些信息来区别不同的函数,返回值不能作为唯一的区别条件.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
8楼2014-04-11 20:01:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 自来清风 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 23jxep3nCNZb 2026-09-14 3/150 2026-09-15 09:38 by VMDqgnlKimtZ
[教师之家] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 6F5UbRU2I5hL 2026-09-14 3/150 2026-09-15 08:26 by C79jjtjAKjEn
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 6F5UbRU2I5hL 2026-09-14 3/150 2026-09-15 08:14 by C79jjtjAKjEn
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 6F5UbRU2I5hL 2026-09-14 4/200 2026-09-15 08:02 by C79jjtjAKjEn
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 6F5UbRU2I5hL 2026-09-14 3/150 2026-09-15 07:58 by C79jjtjAKjEn
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 s3fFTmArrBt6 2026-09-14 3/150 2026-09-15 07:14 by C79jjtjAKjEn
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 s3fFTmArrBt6 2026-09-13 5/250 2026-09-15 06:49 by 5BDX0d0WFp7t
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 LwdutQ8HoqWP 2026-09-13 4/200 2026-09-15 06:14 by 5BDX0d0WFp7t
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 3n8v2C8RimXI 2026-09-13 4/200 2026-09-15 06:01 by 5BDX0d0WFp7t
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 3n8v2C8RimXI 2026-09-13 4/200 2026-09-15 05:50 by 5BDX0d0WFp7t
[考博] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 3n8v2C8RimXI 2026-09-13 3/150 2026-09-15 05:49 by 5BDX0d0WFp7t
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 3n8v2C8RimXI 2026-09-13 5/250 2026-09-15 05:34 by 5BDX0d0WFp7t
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 QUjhNVAcOSff 2026-09-13 4/200 2026-09-15 05:00 by mibUvS8DDCwf
[博后之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-13 4/200 2026-09-14 23:24 by vZfe6xYu34yj
[找工作] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +5 3n8v2C8RimXI 2026-09-13 5/250 2026-09-14 22:13 by vZfe6xYu34yj
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 QUjhNVAcOSff 2026-09-13 4/200 2026-09-14 21:37 by vZfe6xYu34yj
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 QUjhNVAcOSff 2026-09-13 5/250 2026-09-14 21:25 by vZfe6xYu34yj
[考博] 上海工程技术大学激光智能制造课题组招收博士研究生 +4 两三岁ss 2026-09-14 4/200 2026-09-14 20:29 by 班主任的同桌
[找工作] 浙江师范大学是怎么坑我的 +6 recruit123 2026-09-09 6/300 2026-09-14 12:00 by 萨仁其其格
[考博] 27秋季材料博士申请求助 10+3 Cahal1 2026-09-11 4/200 2026-09-14 08:50 by 北京莱茵编辑
信息提示
请填处理意见