teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

微修正

2018/02/13 10:49

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  `#include "CAppSub.h"` しなければCAppSubに変更が生じてもCAppMain利用者コードは再コンパイル不要。詳細を隠すことによるメリットやね。
7
7
 
8
- (CAssMain.cppはCAppSubの詳細がなくては実装できんので#includeするけど。)
8
+ (CAppMain.cppはCAppSubの詳細がなくては実装できんので#includeするけど。)
9
9
 
10
10
  [追記]
11
11
  もうひとつ、**たすき掛け(相互参照)**のため。

3

微修正

2018/02/13 10:49

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  (CAssMain.cppはCAppSubの詳細がなくては実装できんので#includeするけど。)
9
9
 
10
10
  [追記]
11
- もうひとつ、**たすき掛け**のため。
11
+ もうひとつ、**たすき掛け(相互参照)**のため。
12
12
 
13
13
  ```C++
14
14
  // 旦那.h

2

加筆

2018/02/13 02:04

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -5,4 +5,35 @@
5
5
 
6
6
  `#include "CAppSub.h"` しなければCAppSubに変更が生じてもCAppMain利用者コードは再コンパイル不要。詳細を隠すことによるメリットやね。
7
7
 
8
- (CAssMain.cppはCAppSubの詳細がなくては実装できんので#includeするけど。)
8
+ (CAssMain.cppはCAppSubの詳細がなくては実装できんので#includeするけど。)
9
+
10
+ [追記]
11
+ もうひとつ、**たすき掛け**のため。
12
+
13
+ ```C++
14
+ // 旦那.h
15
+ #include "嫁.h"
16
+ class 旦那 {
17
+ 嫁* 相方;
18
+ };
19
+ ```
20
+
21
+ ```C++
22
+ // 嫁.h
23
+ #include "旦那.h"
24
+ class 嫁 {
25
+ 旦那* 相方;
26
+ };
27
+ ```
28
+ これ、コンパイルできません。無限に#includeすることになるぢゃろ?
29
+ こんなときに
30
+
31
+ ```C++
32
+ // 旦那.h
33
+ class 嫁;
34
+
35
+ class 旦那 {
36
+ 嫁* 相方;
37
+ };
38
+
39
+ ```

1

加筆

2018/02/13 01:56

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -3,4 +3,6 @@
3
3
  「詳細を隠したい」という意図の現れでもあります。
4
4
  この例でいけば、「CAppMainの利用者にはCAppSubのナカミを意識して欲しくない」ってこと。
5
5
 
6
+ `#include "CAppSub.h"` しなければCAppSubに変更が生じてもCAppMain利用者コードは再コンパイル不要。詳細を隠すことによるメリットやね。
7
+
6
8
  (CAssMain.cppはCAppSubの詳細がなくては実装できんので#includeするけど。)