如何解决从父类对象指针的向量访问派生类属性
使用向量,定义为存储指向 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 举报,一经查实,本站将立刻删除。