hyp永恒冰川 2022-04-30 22:20 采纳率: 66.7%
浏览 28
已结题

c++多态的问题,纯虚函数的重写

为什么我调用了子类的makedrink方法后,重写的boil,brew,input,putsth方法里面的内容没有输出?我的编译环境是vscode
输出结果如下:

making drink
making drink
[1] + Done

源代码


#include<iostream>
using namespace std;
class makedrink
{
    public:
    virtual void boil()=0;
    virtual void brew()=0;
    virtual void input()=0;
    virtual void putsth()=0;
    void mkprecedure(){
        cout<<"making drink"<<endl;
        void boil();
        void brew();
        void input();
        void putsth();
    }
};
class coffe:public makedrink
{
    public:
    virtual void boil(){
        cout<<"boiling water"<<endl;
    }
    virtual void brew(){
        cout<<"brewing coffe"<<endl;
    }
    virtual void input(){
        cout<<"put into a cup"<<endl;
    }
    virtual void putsth(){
        cout<<"putsht into the drink"<<endl;
    }
};
class tea:public makedrink
{
    public:
     virtual void boil(){
        cout<<"boiling water"<<endl;
    }
    virtual void brew(){
        cout<<"brewing tea"<<endl;
    }
    virtual void input(){
        cout<<"put into a cup"<<endl;
    }
    virtual void putsth(){
        cout<<"putsht into the drink"<<endl;
    }
};
void function1(makedrink* drink){
    drink->mkprecedure();
    delete drink;
}
void test(){
    function1(new coffe);
    function1(new tea);
}
int main(){
    test();
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 树下等苹果 2022-04-30 22:48
    关注

    mkprecedure函数改成如下,你加上void变成声明了,应该是调用才对:

    
      void mkprecedure() {
            cout << "making drink" << endl;
            boil();
            brew();
            input();
            putsth();
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 已采纳回答 5月1日
  • 创建了问题 4月30日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题