回答編集履歴

3

補足場所修正

2015/12/02 02:06

投稿

hsk
hsk

スコア728

test CHANGED
@@ -4,13 +4,17 @@
4
4
 
5
5
  C++では、クラスのメンバーにおいてアクセス修飾子を指定しない場合 private になりますので、クラスについて基本的にはメンバーを隠匿するような使用法を言語設計者は意図しているのだろうと思います。
6
6
 
7
+ 私の経験的にですが、vga640x480さんが仰られる内容や、デバッグのしやすさなどから、アクセッサを経由させたほうが保守性が向上しています(改修などで、あとから楽)。
7
8
 
8
-
9
- オブジェクトやデさらけ出てひとかまりとして扱いたい場合既定のアクセスレベルがpublicであ、構造体私なら使用しす(class から structコードを変えます)。すぐ捨てるサンプル的なコードならもかく、面倒ですクラスを定義すると同時(早い段階)アクセッサも用意します。
9
+ たとえば、メンバ変数の型のほう変更した場合公開す変数型同じ保つことがでます。
10
10
 
11
11
 
12
12
 
13
+ オブジェクトやデータをさらけ出してひとかたまりとして扱いたい場合は、既定のアクセスレベルがpublicである、構造体を私なら使用します(class から structにコードを変えます)。
14
+
15
+
16
+
13
- ご質問にもどりますと、私なら躊躇せずメンバー変数は隠匿し、アクセッサを定義します。すべて公開したいデータ(オブジェクトや変数)の集まりなら、構造体にします。
17
+ ご質問にもどりますと、私なら躊躇せずメンバー変数は隠匿し、アクセッサを定義します。すべて公開したいデータ(オブジェクトや変数)の集まりなら、構造体にします。すぐ捨てるサンプル的なコードならともかく、面倒ですがクラスを定義すると同時(早い段階)でアクセッサも用意します。
14
18
 
15
19
 
16
20
 

2

補足

2015/12/02 02:06

投稿

hsk
hsk

スコア728

test CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- C++では、クラスのメンバーにおいてアクセス修飾子を指定しない場合 private になりますので、クラスについて基本的にはメンバーを隠匿するような使用法を言語設計者は意図しているのだと思います。
5
+ C++では、クラスのメンバーにおいてアクセス修飾子を指定しない場合 private になりますので、クラスについて基本的にはメンバーを隠匿するような使用法を言語設計者は意図しているのだろうと思います。
6
6
 
7
7
 
8
8
 
9
- オブジェクトやデータをさらけ出してひとかたまりとして扱いたい場合は、既定のアクセスレベルがpublicである、構造体を私なら使用します。
9
+ オブジェクトやデータをさらけ出してひとかたまりとして扱いたい場合は、既定のアクセスレベルがpublicである、構造体を私なら使用します(class から structにコードを変えます)すぐ捨てるサンプル的なコードならともかく、面倒ですがクラスを定義すると同時(早い段階)でアクセッサも用意します。
10
10
 
11
11
 
12
12
 
@@ -15,3 +15,7 @@
15
15
 
16
16
 
17
17
  余談ですが、C++でも.NET Frameworkのマネージドアプリケーションを作れますけれども、オブジェクト間のバインド機構を使うときにプロパティ(アクセッサ)である必要がある(フィールド(メンバー変数)は使用不可)だったりするので、 .NET 開発者もclassオブジェクトに関しては同様の考えを持っているのかな...と感じます。いちいちアクセッサを書くことは面倒かもしれませんが、IDEがずいぶん進化していて助けられます。
18
+
19
+
20
+
21
+ 趣旨からずれていたらすみません。

1

補足

2015/12/02 01:59

投稿

hsk
hsk

スコア728

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- オブジェクトやデータをひとかたまりとして扱いたい場合は、既定のアクセスレベルがpublicである、構造体を私なら使用します。
9
+ オブジェクトやデータをさらけ出してひとかたまりとして扱いたい場合は、既定のアクセスレベルがpublicである、構造体を私なら使用します。
10
10
 
11
11
 
12
12