c++怎么用父类调用子类成员
时间: 2023-08-11 21:08:41 浏览: 138
class_inheritance.zip_系统编程_Visual_C++_
5星 · 资源好评率100%
在 C++ 中,可以通过使用指向子类对象的指针或引用来调用子类成员。这是因为子类对象可以被看作是父类对象的一种特殊形式。
以下是一个示例代码,其中使用指向子类对象的指针来调用子类的成员函数:
```
class Parent {
public:
virtual void func() {
cout << "Parent" << endl;
}
};
class Child : public Parent {
public:
void func() {
cout << "Child" << endl;
}
void childFunc() {
cout << "Child-specific function" << endl;
}
};
int main() {
Child c;
Parent* p = &c;
p->func(); // 输出 "Child"
// 不能直接调用子类特有的成员函数
// p->childFunc(); // 会编译错误
// 可以使用强制类型转换将父类指针转换为子类指针
Child* cp = static_cast<Child*>(p);
cp->childFunc(); // 输出 "Child-specific function"
return 0;
}
```
在上面的示例中,我们先创建了一个 `Child` 类的对象 `c`,然后使用父类指针 `p` 指向该对象。接着,通过调用 `p->func()` 来调用子类的成员函数 `Child::func()`,输出 "Child"。
由于父类指针无法直接调用子类特有的成员函数 `Child::childFunc()`,因此我们需要使用强制类型转换将 `p` 转换为 `Child*` 指针。这样就可以调用子类特有的成员函数 `cp->childFunc()`,输出 "Child-specific function"。
阅读全文