鱼C论坛

 找回密码
 立即注册
查看: 1516|回复: 4

[已解决]为什么无法输出

[复制链接]
发表于 2016-4-8 19:24:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# include <iostream>
# include <string>

class Lovers
{
public:
             std::string name;
                Lovers(std::string thename);

                void kiss(Lovers *lover);
                void ask();
};
Lovers::Lovers(std::string thename)

{
        name = thename;
}

void  Lovers::kiss(Lovers *lover)
{
                std::cout<<name<<"亲了一下"<<lover->name;
   
}




class Boyfirend : public Lovers
{
public:

        Boyfirend(std::string thename);

        void kiss(Lovers *love);
       
};

void Boyfirend::kiss(Lovers *lover)
{



}

Boyfirend::Boyfirend(std::string thename) : Lovers(thename)
{
}

class Girlfirend : public Lovers
{

public:

        Girlfirend(std::string thename);

};

Girlfirend::Girlfirend(std::string thename) : Lovers(thename)
{

}


int main(void)
{


        Boyfirend bf("A君");
        Girlfirend gf("B妞");
       

        bf.kiss(&gf);




        return 0;
}
最佳答案
2016-4-8 23:13:03
在小甲鱼的视屏里,BOY类里应该是没有kiss 的函数的。你把BOY里的Kiss函数删了就可以了。
原因在后面的视频你学了就懂了。  
基类里定义了Kiss函数,然后Boy类里也有kiss函数,且这两个函数名相同,并且没有把基类里的Kiss函数设为虚函数,那么子类里的kiss函数会把基类的kiss函数隐藏,也就是说后面创建出的boy的对象的kiss执行的是Boy类里的kiss,那么你在BOY类里Kiss函数的定义是空的,所以什么也没有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-8 23:13:03 | 显示全部楼层    本楼为最佳答案   
在小甲鱼的视屏里,BOY类里应该是没有kiss 的函数的。你把BOY里的Kiss函数删了就可以了。
原因在后面的视频你学了就懂了。  
基类里定义了Kiss函数,然后Boy类里也有kiss函数,且这两个函数名相同,并且没有把基类里的Kiss函数设为虚函数,那么子类里的kiss函数会把基类的kiss函数隐藏,也就是说后面创建出的boy的对象的kiss执行的是Boy类里的kiss,那么你在BOY类里Kiss函数的定义是空的,所以什么也没有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-4-8 23:21:45 | 显示全部楼层
boy类的kiss函数讲基类的kiss函数覆盖了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-9 05:12:53 | 显示全部楼层
caspar 发表于 2016-4-8 23:21
boy类的kiss函数讲基类的kiss函数覆盖了

那该怎么修改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-9 05:15:13 | 显示全部楼层
奥古斯丁少爷 发表于 2016-4-8 23:13
在小甲鱼的视屏里,BOY类里应该是没有kiss 的函数的。你把BOY里的Kiss函数删了就可以了。
原因在后面的视 ...

谢谢你哈  因为我刚学C++。还没有学到虚函数和隐藏这两个概念
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 22:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表