0
次のコードでは、BのメソッドはAのメンバーベクトルを変更します。これを実装するには、参照によってベクトルを返します。他にも良い方法がありますか?他の場所でメンバーベクトルを変更する必要があるときに、メンバーベクトルを参照する必要がありますか?
class A {
public:
vector<int> &GetData() { return data_; }
private:
vector<int> data_;
};
class B {
public:
void Method(A *a) {
vector<int> &data = a->GetData();
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
};
慣用的な方法は 'public:std :: vector data;'です。あなたのアプローチには、カプセル化の利点と過剰なエンジニアリングの欠点がありません。 –
nwp
「慣用的なやり方は何であるか」は、「主に意見に基づく」傾向があり、それゆえに話題になる傾向があります。最良の答えが可能であり客観的に判断できる方法で言い換えてみてください。 – nwp
自分自身に質問するには、 'メソッド'が 'B'の一部であり、' A'のメンバーでない理由があります。 –