この場合、同じメンバー名を使用するのは悪い考えだと思います。コードがエラーになりやすいからです。
シナリオを想像してください。2つのデカルトポイント、pntAとpntBがあります。次に、何らかの理由で、極座標で表現する方が良いと判断し、宣言とコンストラクタを変更します。
ここで、すべての操作が次のようなメソッド呼び出しだけであった場合:
double distance = pntA.distanceFrom(pntB);
大丈夫です しかし、メンバーを明示的に使用するとどうなりますか?比較する
double leftMargin = abs(pntA.x - pntB.x);
double leftMargin = abs(pntA.first - pntB.first);
最初の場合、コードはコンパイルされません。エラーがすぐに表示され、修正できます。ただし、同じメンバー名を持っている場合、エラーは論理レベルでのみ発生し、検出がはるかに困難になります。
非オブジェクト指向言語で記述する場合、間違った構造体を関数に渡すのはさらに簡単です。次のコードを書くのを止めるのは何ですか?
double distance = calculate_distance_polar(cartesianPointA, polarPointB);
一方、異なるデータ型を使用すると、コンパイル中にエラーを見つけることができます。