baidu_34602556 2016-06-10 13:28 采纳率: 16.7%
浏览 1386

请问纯虚函数继承后子类不可以在子类外实现函数吗这段代码错了

 #include <iostream>
class door
{
public:
    virtual void setname(char*peo_name) = 0;
    virtual void setname() = 0;
    virtual char*getname() = 0;
};
class bitch:public door
{
private:
    char name[20];
};

void bitch::setname()
{

}

图片说明

  • 写回答

2条回答 默认 最新

  • zhaojia92 2016-06-10 14:56
    关注

    对于抽象基类中的纯虚函数,要求子类在继承后必须实现。
    子类重写基类方法的必要过程有:
    1、子类声明基类函数的形式。
    2、子类实现函数体。

    上面的定义中,子类没有声明函数setname()就重写,则C++编译器默认setname来自基类继承方法。
    修改方法为:
    class bitch:public door
    {
    private:
    char name[20];
    public:
    void setname(char*peo_name);
    void setname();
    char* getname() ;
    };

    然后全部实现三个虚函数。
    要重写或覆盖的方法,只有先声明,后才能实现。实现既可以在类声明内部,也可以在类声明外部。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿