0
メンバー関数からローカルオブジェクトのプライベートメンバーにアクセスする必要があります。この例は、私がよりよく説明することを説明しています。 *公開することなく、または* aに割り当てるための特別な機能を提供せずにこれを行う方法はありますか?この演算子+関数は、ローカルオブジェクトに対して* aを何度も割り当てるか、または割り当てを解除する必要があります。(同じクラスタイプの)ローカルオブジェクトのプライベートメンバーにアクセスする
このpostは、これがうまくいくはずです。
// object.h
class object {
char *a;
...
}
// object.cpp
object object::operator+(object const &rhs) const {
int amount = ...
object local();
// this is ok
this->a = new char[amount];
// this is ok too
rhs.a = new char[amount];
// this is not
local.a = new char[amount];
....
}
マイコンパイルエラー(G ++ 4.6.3)である:
error: request for member ‘a’ in ‘local’, which is of non-class type ‘object()’
オブジェクトコンストラクタをコールしようとしているようですね。コンストラクタに引数を渡すときにのみ、デフォルトのコンストラクタを呼び出すときに '()'は必要ありません。 – Brady