嵌入式马邦德 2021-08-05 22:21 采纳率: 100%
浏览 41
已结题

写个c++一直报错明明是照着写的大家指正指正


#include <iostream>
using namespace std;

class cpu{
    public:
    virtual void cupwork()=0;
};
class displaycard{
    public:
    virtual void displaycardwork()=0;
};
class memory{
    public:
    virtual void memorywork()=0;
};

class computer{
public:
    computer(cpu*cpu,displaycard*dpd,memory*mem)
    {
        c_cpu=cpu;
        c_dpd=dpd;
        c_mem=mem;
    }
    void dowork()
    {
        c_cpu->cupwork();
        c_dpd->displaycardwork();
        c_mem->memorywork();
    }
    ~computer()
    {
        if(c_cpu!=NULL)
        {
            delete c_cpu;
            c_cpu=NULL;
        }
         if(c_dpd!=NULL)
        {
            delete c_dpd;
            c_dpd=NULL;
        }
         if(c_mem!=NULL)
        {
            delete c_mem;
            c_mem=NULL;
        }
    }
private:
    cpu *c_cpu;
    displaycard *c_dpd;
    memory *c_mem;
};

//厂商
//inter
class intercpu:public cpu{
 public:  
    virtual void cupwork()
    {
        cout<<"intercpu开始工作"<<endl;
    }
};
class interdisplaycard:public displaycard{
    public:
    virtual void displaycardwork()
    {
        cout<<"inter显卡开始工作"<<endl;
    }
};
class intermemory:public memory{
    public:
    virtual void memorywork()
    {
        cout<<"inter内存开始工作"<<endl;
    }
};
//联想
class Lenovocpu:public cpu{
    public:
    virtual void cpuwork()
    {
        cout<<"Lenovocpu开始工作"<<endl;
    }
};
class Lenovodisplaycard:public displaycard{
    public:
    virtual void displaycardwork()
    {
        cout<<"Lenovo显卡开始工作"<<endl;
    }
};
class Lenovomemory:public memory{
    public:
    virtual void memorywork()
    {
        cout<<"Lenovo内存条开始工作"<<endl;
    }
};

void test()
{
    cpu*intercpu=new intercpu;   
    displaycard*interdisplaycard=new interdisplaycard;
    memory*intermemory=new intermemory;   
    computer*computer=new computer(intercpu,interdisplaycard,intermemory);
    computer->dowork();
    delete computer;
}
int main()
{
    test();
    system("pause");
    return 0;
}

错误如图

img

img

  • 写回答

2条回答 默认 最新

  • 樱花の雨 2021-08-06 09:53
    关注

    纯虚函数是 一种特殊的虚函数,它的一般格式如下:   class <类名>   {   virtual <类型><函数名>(<参数表>)=0;   …   };   在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去 做。这就是纯虚函数的作用。   纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。 凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了 抽象类,不能实例化对象。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看