我的程序的目标是让用户每人最多可以创建100个人和汽车对象。然后我希望用户能够将汽车“注册”给特定的人。做研究,我发现聚合将成为可行的途径。不过,我真的迷失了如何实现这个目标。
现在我只有两个类,我将汽车对象的矢量与人类相关联:
class person{
public:
vector<string>cars = new vector<string>();
};
class car{
//something
};
你怎么把这两个联系起来?任何建议都表示赞赏。
答案 0 :(得分:0)
目前,您有1个人拥有&#39;汽车的集合(矢量)。你想要的是一辆车由一个人拥有。
class car
{
person& _person;
public void Register(Person& person) { _person = person; }
}
答案 1 :(得分:0)
我不会person
知道car
,反之亦然。相反,我认为一些外部实体应该与它们相关联换句话说
class person
{
// something
std::string name;
};
class car
{
// something
std::string vin;
};
您可以使用以下类来聚合这两个
class driver
{
// something
car m_car;
person m_owner;
}
然后,您可以制作以下vector
个100个驱动程序,每个驱动程序都有关联的car
和person
std::vector<driver> owners = std::vector<driver>(100);
如果需要,您也可以迭代它们以执行某些操作
for (auto& owner : owners)
{
std::cout << "Current owner: " << owner.m_person.name << "\n"
<< "Associated vehicle: " << owner.m_car.vin << "\n"
}