【发布时间】:2015-07-13 04:51:23
【问题描述】:
我试图找到一种在一个向量中存储两个不同类对象的好方法,每个对象在向量中都有自己的位置,因此可以在以后需要时存储和访问这些对象。
我使用了一个结构,但是我将结构所具有的所有内容都存储到了我不想要的向量中,我将举例说明我的意思。
Class A{
public:
void changeNumber(int x) {number = x;}
private:
int number;
};
Class B{
public:
void changeNumber(int x) {number = x;}
private:
int number;
};
struct Object{
A a;
B b;
};
Class Main{
public:
void storeObject(Object ob) {object.push_back(ob);}
private:
std::vector<Object> objects; //when an object is passed both A and B objects are stored within the vector in the same location
};
有没有一种方法可以在一个对象中存储两个不同的类对象,但一次只传递一个来存储,所以我在向量中有自己的索引?
【问题讨论】:
-
你到底想用这个实现什么?您可能想要的是一个公共基类
class A : Base {...,然后将指向Base的指针存储在std::vector<Base*> objects中,但我可能会误解struct Object背后的意图。 -
我正在尝试存储两个不同的类对象,它们将具有不同的函数和不同的变量,但我想将这两个类对象存储在一个向量中,这样我可以更轻松地循环大小向量并完成需要完成的任务。 @mbschenkel