我給下面的例子來說明我的問題:在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