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

回答編集履歴

2

コメントを反映

2021/01/29 08:04

投稿

int32_t
int32_t

スコア22002

answer CHANGED
@@ -1,5 +1,10 @@
1
1
  > しっかり前方宣言されているはずですが
2
2
 
3
3
  前方宣言が間違っています。`class Stage` の定義の中で前方宣言してください。
4
+ また、`Stage::getMap()` の実装のほうの戻り値の型は、`MapChip`ではなく`Staget::MapChip`と書く必要があります。
4
5
 
5
- さらに、`private` な型を `public` なメソッドで返そうとしているので、けっきょく `Stage::MapChip` の定義を `public` セクションに移動する必要があります。
6
+ さらに、`private` な型を `public` なメソッドで返そうとしているので、けっきょく `Stage::MapChip` の定義を `public` セクションに移動する必要があります。
7
+
8
+
9
+ -----
10
+ 一般論で `public` な内部 class/struct はメリットがほとんどありません。上記変更点はすべてなしにして、`Stage::MapChip` を `Stage` から追い出してトップレベルに移してしまったほうがコードはシンプルかもしれません。

1

脱字

2021/01/29 08:04

投稿

int32_t
int32_t

スコア22002

answer CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  前方宣言が間違っています。`class Stage` の定義の中で前方宣言してください。
4
4
 
5
- さらに、`private` な型を `public` なメソッドで返そうとしているので、けっきょ `Stage::MapChip` の定義を `public` セクションに移動する必要があります。
5
+ さらに、`private` な型を `public` なメソッドで返そうとしているので、けっきょ `Stage::MapChip` の定義を `public` セクションに移動する必要があります。