私は私の質問説明するために、次の例を与える:この例では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
オブジェクトの配列が含まれています。オブジェクトの作成は4つの要素で決まります。クラスAのcommon
要素があると予想されますが、他の要素は生成されるAオブジェクトごとに異なります。私が考えることのできる1つの解決策は、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の最初のオブジェクトを1つのオブジェクトに渡して、Aの他のインスタンスに同じ値を持たせたいとしますか?私はそれが正しいことを理解しましたか? – Sossenbinder
'std :: bind()'は – lorro
@ Sossenbinderはいです。これは私が期待しているものです。 – feelfree