【发布时间】:2014-05-07 09:57:44
【问题描述】:
我有一个基类 Base,我声明了它的几个多态子类。一些基类的函数是纯虚拟的,而另一些则由子类直接使用。
(这都是C++)
例如:
class Base
{
protected:
float my_float;
public:
virtual void Function() = 0;
void SetFloat(float value){ my_float = value}
}
class subclass : public Base
{
void Function(){ std::cout<<"Hello, world!"<<std::endl; }
}
class subclass2 : public Base
{
void Function(){ std::cout<<"Hello, mars!"<<std::endl; }
}
如您所见,子类将依赖于设置“my_float”的函数的基类,但相对于其他函数将是多态的。
所以我想知道这是否是一种好习惯。如果你有一个抽象基类,你应该让它完全抽象还是可以做这种混合方法?
【问题讨论】:
-
这对我来说听起来很正常。我每天都使用它们。
-
你可以这样做。没有什么比我在这里能感觉到的糟糕的编程了。这就是制作纯虚函数的原因。
标签: c++ class polymorphism virtual subclass