是在面向对象编程中常见的操作,用于指向具有不同派生类类型的对象。在C++中,可以通过基类指针来实现多态性,即通过指针调用基类的虚函数,实现对派生类对象的多态访问。
指向多态对象的指针的初始化需要以下几个步骤:
下面是一个示例代码,演示了指向多态对象的指针的初始化过程:
#include <iostream>
class Base {
public:
virtual void display() {
std::cout << "Base class" << std::endl;
}
};
class Derived1 : public Base {
public:
void display() override {
std::cout << "Derived1 class" << std::endl;
}
};
class Derived2 : public Base {
public:
void display() override {
std::cout << "Derived2 class" << std::endl;
}
};
int main() {
Derived1 derived1;
Derived2 derived2;
Base* ptr1 = &derived1;
Base* ptr2 = &derived2;
ptr1->display(); // 输出: Derived1 class
ptr2->display(); // 输出: Derived2 class
return 0;
}
在这个例子中,Base
是基类,Derived1
和Derived2
是派生类。通过将ptr1
指向derived1
对象的地址,将ptr2
指向derived2
对象的地址,实现了对不同派生类对象的多态访问。调用ptr1->display()
时会调用Derived1
类中的display()
函数,输出"Derived1 class";调用ptr2->display()
时会调用Derived2
类中的display()
函数,输出"Derived2 class"。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云