1

初心者の質問です。次のようにポインターに保存された、ランダムなクラスの 2 つのオブジェクトがあるとします。

   RandomClass *obj1 = new RandomClass;
   RandomClass *obj2 = new RandomClass;

これらのオブジェクトから関数を呼び出すと、次のように簡単に実行できます。

   obj1->randomFunction();

しかし、オーバーロードされた乗算演算子 (通常のオブジェクトを使用) など、そのクラスの演算子関数をどのように使用しますか?

   obj1 * obj2

そして、それが不可能な場合、この問題を解決するためにどのように対処しますか (新しい関数を書くことはできません)。ばかげた質問かもしれませんが、ポインター演算などでこれがどのように機能するかについて少し混乱しています。

4

4 に答える 4

1

コードの最初のビットは有効な C++ ではありません (Java に似ています)。これは有効な C++ です。

RandomClass* obj1 = new RandomClass;
RandomClass* obj2 = new RandomClass;

obj1andが指すオブジェクトを乗算するにはobj2、それらを逆参照します ( *obj1and *obj2)。コードは次のようになります。

(*obj1) * (*obj2)

obj1ポインターです。*obj1指しているものです。

于 2013-04-16T18:54:02.813 に答える
1

私はあなたが意味すると思います

RandomClass *obj1 = new RandomClass();
RandomClass *obj2 = new RandomClass();

2 つを乗算する場合は、ポインターを参照して実際の値を取得する必要があります。

multRes = (*obj1) * (*obj2);
于 2013-04-16T18:54:20.157 に答える