我有一个抽象的基类。假设,我希望派生类也是抽象的,并将实现纯虚拟函数的责任留给更低的类。做这件事最好的方法是什么?
class Animal {
public:
virtual void makeNoise() = 0;
};
class Dog : public Animal {
};像这样留白比较好,还是我应该这样做:
class Dog : public Animal {
public:
virtual void makeNoise() = 0;
};或者忽略虚拟关键字并:
class Dog : public Animal {
public:
void makeNoise() = 0;
};最合适的方法是什么?
发布于 2015-04-03 22:18:12
不同选项之间没有功能差异(因为您不更改可访问性),但是
=0表示)显然是虚拟的,但它与在Dog中引入的其他(纯)虚拟函数的声明不太一致。- `Dog` is part of a library that you distribute to others
- It introduces new pure virtual functions itself.
- `Animal` itself is not supposed to be further used by the "typical user" directly 这样,从Dog派生出来的客户端就有关于他必须在一个地方实现哪些功能的所有必要信息。
https://stackoverflow.com/questions/29439199
复制相似问题