这个错误什么原因呢

噢噢噢噢 2010-12-02 10:31:10

#include "stdafx.h"
#include<iostream>
using namespace std;
class A
{
public :

virtual void Speak(){cout<<"I'm A"<<endl;}

};
class B:public A
{
virtual void Speak(){cout<<"I'm B"<<endl;}
};
class C:public A
{
virtual void Speak(){cout<<"I'm C"<<endl;}
};
void Tell(A& a)
{
a.Speak();
}
int main()
{

A m;
B d;
C p;

Tell(m);
Tell(d);
Tell(p);
return 0;
}



这样没问题。。但把Tell函数放在 main函数内定义,就会出错。。
error C2601: “Tell”: 本地函数定义是非法的
1> 此行有一个“{”没有匹配项
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
噢噢噢噢 2010-12-02
  • 打赏
  • 举报
回复
汗。。。。别拉我。。我去死好了。。。
lizhong2613 2010-12-02
  • 打赏
  • 举报
回复
直接使用不行么,在main里不能定义函数,反正就一个语句 可以a.speak()啊?
arong1234 2010-12-02
  • 打赏
  • 举报
回复
C/C++语言本来就禁止在函数内定义函数,你当然不可能成功[Quote=引用楼主 ilyysys 的回复:]
C/C++ code

#include "stdafx.h"
#include<iostream>
using namespace std;
class A
{
public :

virtual void Speak(){cout<<"I'm A"<<endl;}

};
class B:public A
{
virtual void Speak()……
[/Quote]
qq120848369 2010-12-02
  • 打赏
  • 举报
回复
main也是函数定义,普通函数也是函数定义,函数定义怎么能互相嵌套呢.

64,691

社区成员

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

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