回答編集履歴

1

追記

2017/06/08 12:47

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -13,3 +13,29 @@
13
13
  その時、クラスのstaticメンバで実装するのか、通常のグローバル関数/グローバル変数で実装するのかは、大差はないように感じます。
14
14
 
15
15
  よりクラスと強く結びついた機能ならstaticメンバでしょうし、例えば、他のクラスもサポートするようなあまりクラスとの結びつきが強くないものはグローバル関数/変数を選択するだろうと思います。
16
+
17
+
18
+
19
+ ---
20
+
21
+ 【追記への回答】
22
+
23
+
24
+
25
+ > では、積極的にstaticにした方が良いのでしょうか?
26
+
27
+
28
+
29
+ staticと非static、どちらかが良いかはその要件で決定できると思います。
30
+
31
+ クラスをインスタンス化する度に必要なメモリなら非staticメンバ変数です。
32
+
33
+ その非staticメンバ変数を操作する関数なら概ね非staticメンバ関数でしょう。(こちらは例外があるかもしれません。)
34
+
35
+
36
+
37
+ クラスに対して1つだけ存在して欲しいメモリならstaticメンバ変数です。
38
+
39
+ 一切の非staticメンバをアクセスしないなら概ねstaticメンバ関数でしょう。(たまたまアクセスしていないだけで、本質的にはアクセスしても可笑しくない場合は非staticで実装することもあるでしょう。)
40
+
41
+