为什么重载函数写在main内不能编译?

kaicaitaiyang 2007-12-29 11:23:32
例子:


#include<iostream>

int main()
{
void print(int aa)
{
std::cout << aa << std::endl;
}
void print(double aa)
{
std::cout << aa << std::endl;
}

print(2);

return 0;
}


一个小例子,今日把重载函数写在main()内在VS2005下不能编译,我想知道为什么把这两个函数写到main中就不能编译了呢。
...全文
355 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhs1982419 2008-01-04
  • 打赏
  • 举报
回复
很简单的问题,函数不能嵌套定义。
daiguoliangfirst 2008-01-03
  • 打赏
  • 举报
回复
这是基本语法问题,函数不能嵌套定义,main也是函数啊,至于为什么,你去问问当初设计这些程序语言的人吧,目的可能入楼上所说的
张琪Samuel 2008-01-03
  • 打赏
  • 举报
回复
在函数中嵌套定义函数或者类的定义并没有增加语言的表达能力,反而增加了复杂性与阅读难度。计算机语言,规则越简单越好,表达能力反而会更强。比如中国象棋的规则要比国际象棋少许多,反而更复杂,跟不用提围棋了。计算机语言也一样,用规则下限刻画语言,应该是计算机科学家追求的梦想。
tcxjia 2008-01-03
  • 打赏
  • 举报
回复
在函数里面嵌套另一个函数有意义么?
abwxwx 2008-01-03
  • 打赏
  • 举报
回复
这是C和C++的语法规定的,设计这门语言的人就是这样规定的吧
从蓝田到元谋 2008-01-03
  • 打赏
  • 举报
回复
标准规定的,函数定义不能嵌套
AndrewITBOY 2008-01-03
  • 打赏
  • 举报
回复
procedure TfrmCS.btnCSClick(Sender: TObject);
procedure Show(s: string);
begin
showmessage(s);
end;
begin
Show('Delphi就可以这样用!')
end;

不好意思,忘了一个分号
AndrewITBOY 2008-01-03
  • 打赏
  • 举报
回复
对的 PASCAL可以的
比如用delphi就可以
procedure TfrmCS.btnCSClick(Sender: TObject);
procedure Show(s: string)
begin
showmessage(s);
end;
begin
Show('Delphi就可以这样用!')
end;
wfwd 2008-01-03
  • 打赏
  • 举报
回复
这是标准的规定,没有为什么
如果你想函数中定义函数,那你就开发能这样做的编译器吗
flyingwow99 2008-01-03
  • 打赏
  • 举报
回复
C不是支持函数嵌套定义
PASCAL可以
sanbanv 2008-01-03
  • 打赏
  • 举报
回复
这种精神支持.
不多学习不用钻这个牛角尖吧.
lostbyte2006 2008-01-02
  • 打赏
  • 举报
回复
不行,就是不行,至于为什么,问问那些老鸟吧,或许他们知道。不过说实话,我没这样用过,我想大家也会觉得很别扭。
ttkk_2007 2008-01-02
  • 打赏
  • 举报
回复
王八的屁股----“龟定”
HelloDan 2007-12-30
  • 打赏
  • 举报
回复
我们可以假设一下,在一个函数里面可以定义一个函数。
那么可以设想,当我们要调用在一个函数里面定义的函数时会发生什么事呢?可能程序找不到这个定义的函数,因为程序只是检查了一下函数的声明或者定义,这样会不进入函数体内就找不到了。
这样解释行不行啊?????
星光伴月 2007-12-30
  • 打赏
  • 举报
回复
C和C++都是这样规定的,好像没有什么理由,它天生就这样,就像男人不能生孩子一样.要是生了,就奇怪了.不知道这个比喻恰当不?^_^
zhangyanli 2007-12-30
  • 打赏
  • 举报
回复
这是标准的规定,没有为什么
kevinlynx 2007-12-30
  • 打赏
  • 举报
回复
语言语法规定。
sheenl 2007-12-30
  • 打赏
  • 举报
回复
因为C不是完整的结构化语言, 所以不支持函数中间定义函数。
pascal是可以的。

chinaqq365 2007-12-30
  • 打赏
  • 举报
回复
要看编译器了.
一生有爱1980 2007-12-30
  • 打赏
  • 举报
回复
这是标准的规定,没有为什么
如果你想函数中定义函数,那你就开发能这样做的编译器吗
加载更多回复(12)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧