注册 登录
编程论坛 C++教室

类成员函数与类的头文件连接后总会报错说函数被重复定义

Mylovcat666 发布于 2022-09-02 16:11, 1347 次点击
我类成员函数声明写在其他文件中,
程序代码:
#include <iostream>
#include "Method.h"
using namespace std;


void  showmenu(int a,int b){

        int temp=a;

        a=b;

        b=temp;

        cout<<"a=" << a << endl;

        cout<<"b=" << b << endl;

}

然后连接类的头文件在主程序中调用,总是会显示函数重复定义,可是我在头文件中的代码确实是写在
程序代码:

#ifndef METHOD_H_INCLUDED
#define METHOD_H_INCLUDED
#include  "showmenu.cpp"
#include <iostream>;
using namespace std;


void showmenu(int a,int b):


#endif // METHOD_H_INCLUDED

宏定义里,为什么还是会出现函数被重复定义了。
5 回复
#2
rjsp2022-09-02 16:51
#include  "showmenu.cpp"
为什么会有这种<说不出形容词>的代码?

#include <iostream>; 这后面不应该有分号

void showmenu(int a,int b) 应当是 void showmenu(int& a,int& b)
#3
Mylovcat6662022-09-02 21:31
回复 2楼 rjsp
showmenu是显示菜单我自己直译的,   
#include <iostream>

这里纯粹是习惯性多打了;改过来也没影响,传值的话本来我就只是想打印一段字符看下能不能用,主要是编译报错 redefintion of  'void showmenu',百度是说这个函数已经被重复定义了,网上其他回答都说要在
程序代码:

#ifndef  
#define
//代码
#endif
#
这里面写类函数引用还有代码,我写在里面了,可是出现了报错,我就想问是不是有其他的问题。
#4
rjsp2022-09-02 21:54
你把 #include  "showmenu.cpp" 这一句删掉试试吧(我不确定你是否还有其它错误)

.cpp 是编译单元,它不应该被人 #include 。
#5
Mylovcat6662022-09-03 13:23
回复 4楼 rjsp
谢谢,好神奇,我之前删过但是出现其他问题就觉得没有用,今天删掉了就好了,编译文件不该被引用还是什么?
#6
mature1192022-09-20 21:35
回复 4楼 rjsp
????不理解
1