c++:父类能否使用子类的实现方法
时间: 2024-03-10 10:45:51 浏览: 215
C++类继承之子类调用父类的构造函数的实例详解
在 C++ 中,父类是不能直接使用子类的实现方法的。父类和子类是两个独立的类,它们之间的成员函数是相互独立的,不能直接调用子类的成员函数。
但是,可以通过虚函数实现多态性来达到类似的效果。当子类重写了父类的虚函数后,父类通过该函数的指针或引用调用该函数时,会调用子类的实现方法,如下所示:
```c++
class Parent {
public:
virtual void foo() {
// 父类的实现
}
};
class Child : public Parent {
public:
void foo() override {
// 子类的实现
}
};
int main() {
Child c;
Parent* p = &c;
p->foo(); // 调用子类的实现方法
return 0;
}
```
在这个例子中,我们通过将子类对象的指针赋值给父类指针,然后通过父类指针调用 `foo()` 函数来达到调用子类实现方法的目的。这就是多态性的应用。
阅读全文