C++中的多态性是指一个接口可以有多种不同的实现方式,可以根据不同的条件灵活地进行实现。多态性的本质是利用继承和虚函数机制实现的,其中继承可以让类之间实现代码重用,而虚函数机制则使得可以在继承关系中重载函数。
实现多态性的步骤
- 定义基类:需要定义一个基类,定义一个接口,它可以定义一些公共的成员函数,以及一些虚函数。
- 定义派生类:在基类基础上定义一些派生类,这些派生类可以实现基类定义的接口,同时也可以定义自己的成员函数。
- 定义指针:定义一个指向基类的指针,它可以指向任何一个派生类的对象。
- 重写虚函数:在每个派生类中重写基类的虚函数,以实现不同的实现方式。
实现多态性的代码示例
class Base
{
public:
virtual void func() = 0;
};
class Derived1 : public Base
{
public:
virtual void func()
{
// do something
}
};
class Derived2 : public Base
{
public:
virtual void func()
{
// do something
}
};
int main()
{
Base *pBase = nullptr;
int nType = 0;
cin >> nType;
if (nType == 0)
{
pBase = new Derived1();
}
else
{
pBase = new Derived2();
}
pBase->func();
delete pBase;
return 0;
}
在上面的代码中,Base类定义了一个虚函数func,Derived1和Derived2类分别继承了Base类,并且重写了func函数,在main函数中,根据输入的参数分别创建Derived1和Derived2的对象,调用func函数,实现了多态性。