我必须用C++制作一个基类和一个派生类。最后,我需要证明void Read和void show两种方法之间的多态性。
这样做之后,我必须创建一个抽象的类对象,从它派生基类,这个类将只包含纯虚拟方法Read和show。
我想我还没有完全理解这一点。因此,我创建了一个抽象类对象,将这两个方法放入“=0”中,使它们变得纯净。但这意味着我还必须编辑基类,使它从类对象派生?就像,之前:
class Base {
}
之后
Class Base : public Object
有人能让我明白吗?
你在正确的轨道上。在base
类中,可以将要多态的方法标记为virtual
。如果函数=0
是“纯虚拟”的,并且在基类中没有实现,并且在任何具体的派生类中都是必需的,则可以设置这些函数。
class Base
{
public:
virtual void Read() = 0;
virtual void Show() = 0;
};
那么对于您的派生类,您的语法是反向的。请注意,override
关键字指示您正在从基类重写虚拟方法。此关键字强制函数签名与基类中的签名匹配。
class Object : public Base
{
public:
void Read() override; // implement this
void Show() override; // implement this
};
用法可能如下所示。请注意,您实例化了一个对象
,但携带一个指向基*
的指针。由于多态性,派生实现被调用。
int main()
{
Object obj;
Base* p = &obj;
p->Read(); // due to polymorphism will call Object::Read
p->Show(); // due to polymorphism will call Object::Show
}