从基类向量中获取派生类变量可以通过以下步骤实现:
以下是一个示例代码:
#include <iostream>
class Base {
public:
virtual void print() {
std::cout << "This is the base class." << std::endl;
}
};
class Derived : public Base {
public:
void print() override {
std::cout << "This is the derived class." << std::endl;
}
void derivedFunction() {
std::cout << "This is a function specific to the derived class." << std::endl;
}
};
int main() {
Base* basePtr = new Derived(); // 向上转型
basePtr->print(); // 访问基类成员函数
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr); // 动态类型识别
if (derivedPtr) {
derivedPtr->derivedFunction(); // 访问派生类特有的成员函数
}
delete basePtr;
return 0;
}
在这个示例中,我们定义了一个基类 Base
和一个派生类 Derived
。通过向上转型,我们将派生类对象赋值给基类指针 basePtr
。然后,我们可以使用 basePtr
访问基类中定义的成员函数 print()
。如果需要访问派生类中特有的成员函数 derivedFunction()
,我们可以使用 dynamic_cast
将 basePtr
转换为派生类指针 derivedPtr
,然后通过 derivedPtr
访问派生类特有的成员函数。
腾讯云相关产品和产品介绍链接地址:
腾讯位置服务技术沙龙
Elastic 中国开发者大会
云+未来峰会
云+社区技术沙龙[第3期]
云+社区技术沙龙 [第30期]
云+社区技术沙龙[第10期]
云+社区技术沙龙[第17期]
DBTalk
云+社区技术沙龙[第6期]
领取专属 10元无门槛券
手把手带您无忧上云