抽象类代码中的错误

时间:2018-01-25 13:45:06

标签: c++ oop

我们可以创建一个类抽象而不使其成员函数纯虚拟吗?抽象类是否有任何数据成员?
例如:

class electronic
{
    int a;
    char b;
public:
    virtual void specifications() = 0;
};

这是一个抽象类吗?

3 个答案:

答案 0 :(得分:1)

  

我们可以创建一个类抽象而不使其成员函数纯虚拟吗?抽象类是否有任何数据成员?

有一种技术可以使用protected构造函数来要求只能公开实例化继承的类。但这并没有使基类真正抽象 是的,抽象类可能包含任意数量的数据成员。

  

这是一个抽象类吗?

是包含至少一个virtual函数的类是抽象类。

继承类必须实现virtual函数,或者这些也是抽象类。

答案 1 :(得分:0)

如果一个类具有纯虚拟成员,那么它就是抽象的,例如你的例子中的specifications

这并不意味着它不能拥有任何其他成员。它可以实现成员函数,它可以具有成员变量,就像任何其他类一样。只是抽象不会限制类中的任何内容,除非您不能创建抽象类的实例。

答案 2 :(得分:0)

抽象类是具有一个或多个纯虚方法的类。抽象类可以有数据成员。