質問内容
ソースコード2ではコンパイル失敗して、ソースコード3ではコンパイル成功する理由がわかりません。
ソースコード1
c++
1class A 2{ 3}; 4 5class B 6{ 7 A a; 8}; 9 10int main() 11{ 12 13 B b; 14}
問題なくコンパイル成功
ソースコード2
c++
1class A; 2 3class B 4{ 5 A a; 6}; 7 8int main() 9{ 10 11 B b; 12} 13 14class A 15{ 16}; 17
コンパイル失敗
エラーメッセージは、以下のとおりです
test.cpp:6:7: error: field 'a' has incomplete type 'A' A a; ^ test.cpp:2:7: note: forward declaration of 'class A' class A;
ソースコード3
c++
1class A; 2 3class B 4{ 5 A a(); 6}; 7 8int main() 9{ 10 11 B b; 12} 13 14class A 15{ 16};
コンパイル成功
よろしくおねがいします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/09 13:14