0

私はC++を初めて使用し、逆参照演算子のオーバーロードについて質問があります。アプリケーションで使用されるメモリ内オブジェクトストアを構築しています。データストアはアプリケーションのメモリスペースにマップされ、アプリケーションは間接参照演算子を使用してオブジェクトを直接読み取り/変更できます。以下に説明するインターフェースを提供する予定です

       DsObject *obj = get_ds_object_ref ("Junk"); // get reference to the object
       int  i = obj->value; // obj is read locked and the value is copied to i variable
       obj->value = i; // obj is write locked and i is copied to the field "value"

演算子のオーバーロード関数には、オブジェクトが読み取られているのか書き込まれているのかを知る方法がありますか?提案は大歓迎です。

4

3 に答える 3

0

get/set 関数を使用することをお勧めします。これらの関数は、必要な操作タイプ (読み取りまたは書き込み) を提供します。

于 2010-09-06T05:21:00.990 に答える
0

いいえ、そうは思いません。obj->value がどのように使用されているかを判断することは (AFAIK) できません。おそらく、次のようなものが必要になるでしょう:

DsObject *obj = get_ds_object_ref ("Junk");
int i = GetValue(obj);
SetValue(obj,i);

申し訳ありませんが、できることはこれ以上ありません。

于 2010-09-06T05:23:06.793 に答える
0

オブジェクトへのロックを達成するには、追加のプロキシ オブジェクトが必要です。derefence (o any other) 演算子が、意図した型を取得するためのキャスト演算子を提供するプロキシを返すようにします。プロキシの有効期間は、ロックを定義するために使用できます。

于 2010-09-06T05:24:48.010 に答える