2025全年今晚澳门走势图最新
在C++中,父类指针可以指向子类对象。这是因为子类是从父类继承而来的,子类对象包含了父类对象的部分或全部成员。通过将父类指针指向子类对象,可以实现对子类对象的访问和操作。
要使用父类指针指向子类对象,需要满足以下两个条件:
子类必须是从父类继承而来的。
父类指针必须声明为指向父类的指针,而不是子类的指针。
下面是一个简单的示例,演示如何使用父类指针指向子类对象:
#include <iostream> class Animal { public: void makeSound() { std::cout << "Animal makes a sound." << std::endl; 四肖中特期期准四期免费公开 } }; class Dog : public Animal { public: void makeSound() { std::cout << "Dog barks: Woof! Woof!" << std::endl; } }; int main() { Animal* animalPtr; // 声明一个指向Animal的指针 Animal animal; Dog dog; // 父类指针指向子类对象 animalPtr = &animal; // 指向Animal对象 animalPtr->makeSound(); // 调用的是Animal类的makeSound方法 animalPtr = &dog; // 指向Dog对象 animalPtr->makeSound(); // 调用的是Dog类的makeSound方法 return 0; }
在上述例子中,定义了一个基类和一个子类,类继承自类。声明了一个指向的指针,然后将其分别指向对象和对象,并通过这个指针调用了相应的方法。由于是非虚函数,调用的是指针类型对应的类的方法。
需要注意的是,为了实现多态,即让父类指针指向子类对象时调用子类的方法,需要将父类的函数声明为虚函数。这样,通过父类指针访问的方法会在运行时根据对象的实际类型来确定调用的是哪个类的方法。如果将函数声明为虚函数,则在上述例子中,通过指向对象时会调用类的方法。