オブジェクト指向において、あるクラスのメンバ関数の中に静的なローカル変数を定義することは、
構造上有効なのでしょうか?
その変数には、スコープを抜ける際に消されたくないデータが入っていて、
1ループごとに1回そのメンバ関数が呼び出されることとします。
オブジェクト指向での静的な変数
- spaaaark・∀・
- 記事: 66
- 登録日時: 12年前
- 住所: 埼玉
- 連絡を取る:
オブジェクト指向での静的な変数
クリエイティブな生活で刺激的な毎日を!
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: オブジェクト指向での静的な変数
複数のインスタンスを生成した時に矛盾しなければ一応可です。ただ、バグを誘発する可能性は高い気が。
リソースをシングルトンとかで管理はダメなのでしょうか?
リソースをシングルトンとかで管理はダメなのでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: オブジェクト指向での静的な変数
スコープを抜ける際に消されたくないだけなら、メンバ変数でよいと思います。
Re: オブジェクト指向での静的な変数
複数のインスタンスで共有されるしインスタンスの寿命も越えて共有される、ということを理解し想定しているのかどうかが問題だということですね。
- spaaaark・∀・
- 記事: 66
- 登録日時: 12年前
- 住所: 埼玉
- 連絡を取る:
Re: オブジェクト指向での静的な変数
皆さん返信ありがとうございます。
まとめて返信するような形で申し訳ないのですが、クラスのインスタンスを越えて同じ値を使いたいときは
static変数を、クラスのインスタンスを再生成した際に初期化したい場合はメンバ変数を使う。
というような認識で大丈夫でしょうか?
恥ずかしながらこのような静的変数がインスタンスをも越えることは理解していませんでした。
まとめて返信するような形で申し訳ないのですが、クラスのインスタンスを越えて同じ値を使いたいときは
static変数を、クラスのインスタンスを再生成した際に初期化したい場合はメンバ変数を使う。
というような認識で大丈夫でしょうか?
恥ずかしながらこのような静的変数がインスタンスをも越えることは理解していませんでした。
クリエイティブな生活で刺激的な毎日を!
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: オブジェクト指向での静的な変数
> クラスのインスタンスを越えて同じ値を使いたいときはstatic変数を
クラスのメンバ変数でもstaticにすれば同様なことが可能で、そちらのほうがメンテナンス性が高いかと思います。
クラスのメンバ変数でもstaticにすれば同様なことが可能で、そちらのほうがメンテナンス性が高いかと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- spaaaark・∀・
- 記事: 66
- 登録日時: 12年前
- 住所: 埼玉
- 連絡を取る: