C++ 类声明(继承)[关闭]

Posted

技术标签:

【中文标题】C++ 类声明(继承)[关闭]【英文标题】:C++ class declarations (inheritence) [closed] 【发布时间】:2013-10-16 09:29:05 【问题描述】:

定义类 X、Y 和 Z,使得 Y 是 X 的子级,Z 是 Y 的子级。Y 类应该是抽象的。

如何声明 Y 类,因为它应该是抽象的?

【问题讨论】:

至少要有一个纯虚成员函数。 【参考方案1】:
class X

;

class Y : public X

public:
    // For defining an abstract class without pure virtual functions:
    virtual ~Y() = 0;

    virtual void method() = 0;  
;

class Z : public Y

public:
    void method() override
    
    
;

【讨论】:

关闭,但缺少一些标点符号并组成了一个关键字。 对我来说看起来像是 C++ 以外的其他语言。 更接近,但 C++ 中没有 abstract 关键字。如果一个类有一个纯虚成员函数,那么它就是隐式抽象的。 @MikeSeymour 你确定吗?如果我用抽象关键字声明一个没有任何纯虚函数的类,我无法从中创建一个对象,我得到这个错误:类“”是用类修饰符“抽象”声明的 @MohammadRB:我完全确定 abstract 不是 C++ 关键字。要么你没有编译 C++,要么你有一个带有非标准扩展的编译器。【参考方案2】:
class Y 
  public:
    virtual void foobar() = 0;
;

这是 c++ 意义上的抽象类。

【讨论】:

以上是关于C++ 类声明(继承)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在运行时从 c++ 类声明中知道继承的数量?

不允许从 C++ 中的某个类继承 [关闭]

C++学习19 类的多继承

在 C++ 中使用多继承声明接口并实现接口

C++ 多重继承的真实例子是啥? [关闭]

C++ 多重继承