このクラスAがあるとしましょう:
class A
{
public:
int a;
A(int b)
{
a = b;
}
};
+オーバーロードを作成して、このように使用できるようにします
A a(1),b(2),c(3),&d;
d = a + b + c;
各オブジェクトのコンテンツを変更せずに。次の論理的なことは、次のように毎回新しいメモリチャンクを割り当てることです。
A &operator+ (const A &b)
{
A *c = new A(a+b.a);
return *c;
}
ただし、これにより新しい問題が発生します。中間結果が失われ、メモリリークが発生します。3つのAオブジェクト参照を受け取り、最初の2つの合計を3番目に格納する静的関数を作成することで、この問題を簡単に解決できましたが、+オーバーロードをその方法で発生させる方法が必要であると確信しています。が欲しいです。
したがって、問題は、メモリリークを発生させずにオペランドを変更しない一連の演算子オーバーロードを使用できる方法はありますか?