微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从父类对象指针的向量访问派生类属性

如何解决从父类对象指针的向量访问派生类属性

我有一个类 A,带有派生类 B 和 C。

使用向量,定义为存储指向 A 类对象的指针,我存储指向类 B 的一些对象和类 C 的一些对象的指针。

当我从向量中寻址指向对象的指针时,如何访问 B 类或 C 类特定属性

目前,由于向量被定义为存储指向 A 类对象的指针,我只能访问基类属性

示例:

#include <iostream>
#include <vector>

using namespace std;

class A {
public:
    int ID;

    A(int ID)
    : ID(ID) {}
};

class B: public A{
public:
    int price;

    B(int ID,int price)
    : A(ID),price(price) {}
};

class C: public A{
public:
    int weight;
    
    C(int ID,int weight)
    : A(ID),weight(weight) {}
};

int main() {

    B * objB = new B(1,1);
    C * objC = new C(1,100);
    
    vector<A *> objVector;
    objVector.push_back(objB);
    objVector.push_back(objC);
    
    //How do I access weight here?
    int accessedWeight = objVector[1]->weight;

    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。