我刚刚看到一个抽象类,它有一些私有函数......我只是好奇抽象类的私有函数有什么意义?
我想孩子们不会拥有它们。那有什么意义呢?
正如 juanchopanza 指出的那样,拥有私有虚拟设备可能有正当理由。但是抽象类也可能有非虚拟私有数据的原因。
也许您的印象是抽象类没有数据成员,只有纯虚函数?不是这种情况。一个类可能有很多数据成员和非虚成员函数,只要它至少有一个纯虚成员函数,它仍然是抽象的。
class abstract_base {
public:
//functionality that derived classes must implement:
virtual int func1() = 0;
//functionality that derived classes can't override:
int get_count() const { return count_; }
private:
int count_;
};
也许是一个愚蠢的例子,但你明白了。