C++ 保存在两个cpp文件中函数,怎样声明才能互相调用?

主函数所在cpp:#include"menu_1.cpp"#include"menu_2.cpp"voidmain(){charchoice;do{choice=_get... 主函数所在cpp:
#include "menu_1.cpp"
#include "menu_2.cpp"
void main(){
char choice;
do{
choice=_getch();
}while(choice!='0'&&choice!='1')
switch(choice)
case '0':
menu_1();
case '1':
menu_2();
}

menu_1()所在menu_1.cpp:
void menu_1(){
//其他操作
char choice;
do{
choice=_getch();
}while(choice!='0'&&choice!='1')
switch(choice)
case '0':
exit(0);
case '1':
menu_2();
}

menu_2()所在menu_2.cpp:
void menu_2(){
//其他操作
char choice;
do{
choice=_getch();
}while(choice!='0'&&choice!='1')
switch(choice)
case '0':
exit(0);
case '1':
menu_1();
}

由于作业需要,必须将menu_1和menu_2放在两个cpp文件中,但按我那样在主函数前声明的话,编译时会在menu_1.cpp中menu_2();那一行显示无法识别标识符menu_2(),哪位老虾帮帮忙,指点下该怎么声明?
编辑环境是VisualStudio2008
展开
 我来答
wrgljylys
2010-06-15 · TA获得超过389个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:161万
展开全部

#include "menu_1.cpp"
#include "menu_2.cpp"
这两句换成
extern void menu_1();
extern void menu_2();

在menu_1.cpp开头加上extern void menu_2();
在menu_2.cpp开头加上extern void menu_1();

还有,你的代码中有语法错误

void main()
{
char choice;
do
{
choice=_getch();
}
while(choice!='0'&&choice!='1'); // 这里要加分号

switch(choice)
{ // switch后面要跟大括号
case '0':
menu_1();
break; // 这里要加break
case '1':
menu_2();
break;
default:;
}
}

main(), menu_1(),menu_2(),都是如此。

此外,不知道你的"menu_1.cpp""menu_2.cpp"是否包含了_getch,exit的头文件
要记得包含上
wangtk1982
2010-06-15 · TA获得超过3742个赞
知道大有可为答主
回答量:3206
采纳率:100%
帮助的人:1451万
展开全部
在menu_1.cpp:要声明#include "menu_2.cpp"
在menu_2.cpp:要声明#include "menu_1.cpp"

如提示头文件多次编译 加上#pragma once 就可以啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何度千寻
2015-10-26 · TA获得超过5899个赞
知道大有可为答主
回答量:1381
采纳率:91%
帮助的人:560万
展开全部

一下为一个简单的例子:

// file C.h
# ifndef _FOO_H_
# define _FOO_H_
 
extern void sayHello();
 
# endif // _FOO_H_
 
// file B.cpp
# include "C.h"
# include <iostream>
using namespace std;
void sayHello()
{
     // say your hello
}
 
// file A.cpp
# include "C.h"
 
int main()
{
    sayHello();
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Dk_memory
2010-06-15
知道答主
回答量:15
采纳率:0%
帮助的人:8.5万
展开全部
#include "menu_1.cpp"
#include "menu_2.cpp"
void main(){
char choice;
do{
choice=_getch();
}while(choice!='0'&&choice!='1')
switch(choice)
case '0':
menu_1();
case '1':
menu_2();
}
/////////////////////////////////////////////////
menu_1()所在menu_1.cpp:

/*
*/
ifndef MENU_1
#define MWNU_1
#include<stdio.h>
#endef

/*
*/
void menu_1(){
//其他操作
char choice;
do{
choice=_getch();
}while(choice!='0'&&choice!='1')
switch(choice)
case '0':
exit(0);
case '1':
menu_2();
}

///////////////////////////////////
ifndef MENU_2
#define MWNU_2
#include<stdio.h>
#include<menu_1.cpp>
#endef

/*
*/
menu_2()所在menu_2.cpp:
void menu_2(){
//其他操作
char choice;
do{
choice=_getch();
}while(choice!='0'&&choice!='1')
switch(choice)
case '0':
exit(0);
case '1':
menu_1();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qujunde
2010-06-15 · TA获得超过131个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:98.3万
展开全部
void menu_1()
void main()

你写的没错 只是没有声明 在MIAN前面声明一下 就可以调用了!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式