C++の場合、この場合+の演算子オーバーロードの書き方としては、上の図のように二通りに書けるようです。
friend関数として2つのオペランドを持つ書き方、メンバー関数としてオペランドは一つしか持たない書き方。
プロトタイプはクラスの中に書いてるのですが、メンバー関数では無いようです。コメントアウトした部分と
その直ぐしたの部分は、書き方が違うのですが、両方は書けないようです。エラーが消えませんでしたので
片方はコメントアウトしました。
C#の場合はfriend関数の書き方に近いようです。が、微妙に違うので、注意が必要そうです。C#の場合は
プロトタイプのみクラスに書いて、クラスの外で関数を書くと言うことはしないようです。
上はハーバートシルト先生の著書、「独習C#」からそのままですし、更にその上は「独習C++」から
ですが、少しだけ違います。
更に注意としては、newの使い方が微妙に違います。C++の場合はdeleteが必要ですが、C#では
要らないようですし、インスタンスの表し方も違ってくるようです。(*ptr).メソッド名になるようです。
多分ですが->でも書けるんでしょうね。