• ベストアンサー

インスタンスメンバとクラス(スタティック)メンバの使い分け

お世話になります。いろいろと調べてみるのですが、なかなかいい文献に出会いません。宜しくお願いします。 インスタンスメンバにアクセスするには、オブジェクトを生成、経由してアクセスする。クラス(スタティック)メンバにアクセスするには、::演算子を用いてアクセスする。 ここまでは理解できるのですが、どのように使い分ければ良いのでしょうか。メリット、デメリットはあるのでしょうか? 又、アクセス制限をpublicにすることで、オブジェクト経由でどこからでもアクセスできるとありますが、アプリケーション上いったい何のリスクがあるのでしょうか? 宜しくご教授下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

オブジェクトごとに異なる値を設定したいのであればインスタンスメンバ、あらゆるオブジェクトで共有の値を使いたいならクラスメンバで、どちらかの目的によって使います。 publicにするとどこからでも直接に代入も参照も出来ます。リスクは特に無いです。 publicにせず関数経由でアクセスすることにすると、代入方法や参照方法を自分でコントロールでき、クラスの内部構造を変えたときでも呼び出し側を修正しなくて済みます。

関連するQ&A