读书人

同名函数有关问题

发布时间: 2012-04-16 16:20:04 作者: rapoo

同名函数问题
两个模块中都有同名函数,怎么分作用域
模块一
#include<stdio.h>
void m();
void a()
{
printf("主函数\n");
}
void main()
{
m();
a();
}
模块二
#include<stdio.h>
void a()
{
printf("aaa\n");
}
void m()
{
printf("mmm\n");
a();
}
为什么输出:
mmm
主函数
主函数
Press any key to continue

[解决办法]

探讨

为了解决此类冲突,请用namespace

[解决办法]
因为模块一中void m();仅仅是声明,模块二中才是实现,所以不存在冲突。
秒杀123L
[解决办法]
输出好诡异啊
你可以将模块名改掉啊;一样的肯定出现不可预料的结果;
可以用static把模块限定在此文件里面,也可以用namespace.

读书人网 >C++

热点推荐