クラス変数へのアクセスをパブリックからプライベートに変更しました。
次に、ゲッターとセッターを作成しました(100変数)
しばらくして、それが完了した後、
これらの変数のいずれかに直接アクセスして、これらの 100 個の変数のすべてを経由せずに設定/取得する方法を自動化するにはどうすればよいでしょうか。大規模なプロジェクトでは、ほぼどこからでも変数にアクセスすることがあるため、手動で行うのは少し困難です。
私はEclipse IDE、c++プロジェクトを使用しています
クラス変数へのアクセスをパブリックからプライベートに変更しました。
次に、ゲッターとセッターを作成しました(100変数)
しばらくして、それが完了した後、
これらの変数のいずれかに直接アクセスして、これらの 100 個の変数のすべてを経由せずに設定/取得する方法を自動化するにはどうすればよいでしょうか。大規模なプロジェクトでは、ほぼどこからでも変数にアクセスすることがあるため、手動で行うのは少し困難です。
私はEclipse IDE、c++プロジェクトを使用しています
プロジェクトが非常に大きく、それにプライベート メンバー コントロールを後付けしている場合は、別の方法を使用すると便利な場合があります。ゲッターをまったく実装せずに、セッターのみを実装します。基礎となる各プライベート メンバー変数へのパブリック参照を定義しconst
ます。これは、その "getter" として機能します。このデータを読み取るコードは変更されません。これらの変数を設定するコードを更新するだけで済み、更新の手間が大幅に軽減されます。このルートに進む場合は、次のように、コンストラクターでこれらのパブリック参照を初期化する必要があります。
class fred {
public:
fred() : stone(_stone) {} // every constructor must initialize all public references like this
void set_stone(int s) { _stone = s; }
int get_stone() { return _stone; } // Instead of this (or, in ADDITION to this), do this....
const int& stone; // const public reference to internal private data member
private:
int _stone;
}
そのソリューションを永続的に使用することも、(「いつか」) すべてのゲッターの更新を完了するまでのみ使用することもできます。個人的には、内部データのデータ型が明らかで変更されないクラスの場合、このソリューションを使用して記述されたコードは読みやすいため、とにかくこのソリューションを好みます。メソッドを呼び出すのではなく、単にデータ メンバーにアクセスしているように見えるセッター メソッドを記述できる機能がC++にあればいいのにと思います。operator classmember_setter<membername>()
これにより、setter メソッドで得られるよりもはるかにきれいなコードが得られます。