我给下面的例子来说明我的问题:在C++中如何在同一个类对象内共享公共元素。
class A
{
public:
int common;
int a,b,c;
A(int _common, int _a, int _b, int _c):common(_common),a(_a),b(_b),c(_c)
{
}
};
A obj1, obj2, obj3, obj4;
class B
{
public:
void push_back(int common, int a, int b, int c)
{
A obj(common,a,b,c);
aObjArray.push_back(obj);
}
std::vector<A> aObjArray_;
};
B myObj;
int common=3;
myObj.push_back(common,1,2,4);
myObj.push_back(common,4,26,54);
myObj.push_back(common,7,52,64);
在这个例子中,类B
包含A
类对象的阵列。创建一个对象由四个元素决定。预计类A中的common
元素,其他元素对于每个生成的A对象都会有所不同。我能想到的一个解决方案是使common
元素成为静态类成员,这样几个A类对象将共享相同的元素。
class A
{
public:
static int common;
A (int _a, int _b, int _c)
{...}
}
class B
{
public
int common;
B()
{
A::common = common;
}
}
还有其他想法吗?
所以,你想传递一个对象到让我们说A类的第一个对象,并希望在A的其他实例中具有相同的值?我了解这是否正确? – Sossenbinder
'std :: bind()'想到 – lorro
@ Sossenbinder是的,这就是我所期望的。 – feelfree