在C++中,要生成多态对象,需要使用基类指针或引用来指向派生类对象。这样可以让我们通过基类接口调用派生类的实现,实现多态行为。
下面是一个简单的示例:
#include// 基类 class Animal { public: virtual void makeSound() const { std::cout << "The animal makes a sound"<< std::endl; } }; // 派生类1 class Dog : public Animal { public: void makeSound() const override { std::cout << "The dog barks"<< std::endl; } }; // 派生类2 class Cat : public Animal { public: void makeSound() const override { std::cout << "The cat meows"<< std::endl; } }; int main() { // 使用基类指针创建多态对象 Animal* animal1 = new Dog(); Animal* animal2 = new Cat(); // 通过基类指针调用派生类的方法 animal1->makeSound(); // 输出 "The dog barks" animal2->makeSound(); // 输出 "The cat meows" // 释放内存 delete animal1; delete animal2; return 0; }
在这个示例中,我们定义了一个基类Animal
和两个派生类Dog
和Cat
。基类中有一个虚函数makeSound()
,派生类分别重写了这个函数。在main()
函数中,我们使用基类指针Animal*
创建了多态对象,并通过基类接口调用了派生类的实现。这就是C++中多态对象的创建和使用方式。