运行一个c++小程序时出现了下面错误

#include<iostream>usingnamespacestd;classfather{public:virtualvoidrun()const{cout<<"父... #include <iostream>
using namespace std;

class father
{
public:
virtual void run()const{cout<<"父亲可以跑万米\n";}
};

class son:public father
{
public:
void run()const{cout<<"儿子可以跑十万米\n";}
};

class daughter:public father
{
public:
void run()const{cout<<"女儿可以跑五万米\n";}
};

void one(father); //参数为father类的一个对象
void two(father*); //参数为指向father类的一个指针
void three(father&); //参数为father类的一个引用

int main()
{
father *p=0;
int choice;
while (1)
{
bool quit=false;
cout<<"(0)quit (1)son (2)daughter (3)father:";
cin>>choice;
switch (choice)
{
case 0:quit=true;
break;
case 1:p=new son;
one(*p);
break;
case 2:p=new daughter;
two(p);
break;
case 3:p=new father;
three(*p);
break;
default:cout<<"请输入0到3之间的数字\n";
if (quit)
{
break;
}
}
return 0;
}

void one(father one)//用对象调用虚函数run
{
one.run();
}

void two(father *two)//用指针调用虚函数run
{
two->run();
}

void three(father &three) //用引用调用虚函数run
{
three.run();
}

错误提示如下:
:\Program Files\C++\第十三章_虚函数\三种调用虚函数的比较.cpp(58) : error C2601: 'one' : local function definitions are illegal
D:\Program Files\C++\第十三章_虚函数\三种调用虚函数的比较.cpp(63) : error C2601: 'two' : local function definitions are illegal
D:\Program Files\C++\第十三章_虚函数\三种调用虚函数的比较.cpp(68) : error C2601: 'three' : local function definitions are illegal
D:\Program Files\C++\第十三章_虚函数\三种调用虚函数的比较.cpp(71) : fatal error C1004: unexpected end of file found
展开
 我来答
狗食道人
2015-03-07 · TA获得超过304个赞
知道小有建树答主
回答量:166
采纳率:75%
帮助的人:53.7万
展开全部

//他们两位说的对, 你少了一个右括号, 希望你能用一个语法高亮之类的编辑器

//执行程序, 选择1, 输出是父亲

#include <iostream>

using namespace std;


class father

{

public:

    virtual void run()const{cout<<"父亲可以跑万米\n";}

};


class son:public father

{

public:

    void run()const{cout<<"儿子可以跑十万米\n";}

};


class daughter:public father

{

public:

    void run()const{cout<<"女儿可以跑五万米\n";}

};


void one(father);  //参数为father类的一个对象

void two(father*);  //参数为指向father类的一个指针

void three(father&); //参数为father类的一个引用


int main()

{

    father *p=0;

    int choice;

    while (1)

    {

        bool quit=false;

        cout<<"(0)quit (1)son (2)daughter (3)father:";

        cin>>choice;

        switch (choice)

        {

            case 0:quit=true;

                break;

            case 1:p=new son;

                one(*p);

                break;

            case 2:p=new daughter;

                two(p);

                break;

            case 3:p=new father;

                three(*p);

                break;

            default:cout<<"请输入0到3之间的数字\n";

        }

        if (quit)

        {

            break;

        }

    }

    return 0;

}


void one(father one)//用对象调用虚函数run

{

    one.run();

}


void two(father *two)//用指针调用虚函数run

{

    two->run();

}


void three(father &three) //用引用调用虚函数run

{

    three.run();

}


爱上带翅膀的人
2015-03-06
知道答主
回答量:17
采纳率:0%
帮助的人:14.8万
展开全部
switch语句最后缺少} 请在if (quit) 这句之前加上 } 即可 请注意仔细检查代码.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
greengree
2015-03-06 · TA获得超过260个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:177万
展开全部
switch少了一个“}”,加上就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式