C++ 抽象基类的抽象子类
我有一个抽象基类。假设,我希望派生类也是抽象的,并将实现纯虚函数的责任留给更低级的类。最好的方法是什么C++ 抽象基类的抽象子类,c++,abstract-class,C++,Abstract Class,我有一个抽象基类。假设,我希望派生类也是抽象的,并将实现纯虚函数的责任留给更低级的类。最好的方法是什么 class Animal { public: virtual void makeNoise() = 0; }; class Dog : public Animal { }; 还是像这样空白比较好,还是我应该这样做: class Dog : public Animal { public: virtual void makeNoise() = 0; }; 或者忽略virtu
class Animal {
public:
virtual void makeNoise() = 0;
};
class Dog : public Animal {
};
还是像这样空白比较好,还是我应该这样做:
class Dog : public Animal {
public:
virtual void makeNoise() = 0;
};
或者忽略virtual关键字,然后:
class Dog : public Animal {
public:
void makeNoise() = 0;
};
最合适的方法是什么?不同选项之间没有功能上的差异(因为您不更改可访问性),但是
class Animal {
public:
virtual void makeNoise() = 0;
};
class Dog : public Animal {
};
- 我更喜欢选项一,因为它可以避免代码重复李>
- 选项3是最坏的可能性,因为-虽然很明显纯虚拟函数(由
表示)是虚拟的-但它与=0
中介绍的其他(纯)虚拟函数的声明不太一致李>Dog
- 只有在以下情况下,我才会回到选项2
是您分发给其他人的库的一部分Dog
- 它本身引入了新的纯虚函数
本身不应该被“典型用户”直接使用Animal
派生的客户机就拥有了关于必须在一个地方实现哪些功能的所有必要信息Dog