【发布时间】:2017-11-22 04:37:35
【问题描述】:
我想写一个类,其中一些对象共享一个公共属性。
最后我创建了一些看起来像这样的东西: 我创建了一个类 A,其中包含对象 B 和对象 C 的向量,其中每个对象 b 保存对 c 的引用。
Class A{
vector<B> v_b;
C c;
}
Class B{
C& c;
}
向量“v_b”中的对象应该能够改变“c”(向存储在c中的向量添加一个值)如果一个对象添加了一个值,它也应该添加到向量中的所有其他对象“ v_b”。这是主要的想法,为什么我想“分享”这个对象。
最终它并没有按照我想要的方式工作,我需要重新考虑这个问题。
我现在的问题是,将 C 保存为引用还是使用指针更好?
最后,我真的只需要向量“v_b”,我对 A 类不感兴趣,我只使用 A 来创建几个带有“v_b”向量的 A 对象,而不是使用 getter获取所有“v_b”并将它们保存在一个公共向量中。
例子:
vector<b> v;
{
A a1;
a1.add_b_to_vector(B b1); // b1 and b2 should share a common c
a1.add_b_to_vector(B b2);
A a2;
a2.add_b_to_vector(B b3); // b3 and b4 should share a common c
a2.add_b_to_vector(B b4);
v.push_back(a1.get_vector_of_bs()); //lets assume push_back would work
v.push_back(a2.get_vector_of_bs());
}
// do something with v
感谢您的帮助
【问题讨论】:
标签: c++ pointers object reference