要让C++父类指针指向子类对象,可以使用向上转型。向上转型是指将子类的对象赋值给父类的指针或引用,这样父类的指针就可以指向子类的对象。
示例代码如下所示:
class Parent {
public:
virtual void print() {
cout << "This is the parent class." << endl;
}
};
class Child : public Parent {
public:
void print() override {
cout << "This is the child class." << endl;
}
};
int main() {
Child childObj;
Parent* parentPtr = &childObj; // 使用父类指针指向子类对象
parentPtr->print(); // 调用的是子类的print函数
return 0;
}
在上述示例中,我们定义了一个父类Parent和一个子类Child,子类继承自父类。在main函数中,我们创建了一个Child类的对象childObj,然后使用父类指针parentPtr指向childObj对象。接下来,我们通过parentPtr调用print函数,实际上调用的是子类Child的print函数。这就是通过父类指针指向子类对象的方法。