C++の前方宣言とプロトタイプ宣言の違いは何ですか?そして、私はthisとAngewが、C++には2つの用語のどれも存在しないと主張していますが、実際には宣言だけです...しかし、 "前方宣言"を使わずに前方宣言と呼ばれることについてどう思いますか?私たちはこのコードを持っている場合と同じように:前方宣言とプロトタイプ宣言 "宣言"を呼び出すだけですか?
class B;
class A{B b;};
class B{A a;}
私はちょうど「Aの前に表示されるBの宣言」を言うなら、誰もが本当に私が後で定義されることになっているの宣言について話していますことを知っていることはできません。..だから私は正しいC++用語を使って、それについてもっと具体的にすることができますか?
プロトタイプ宣言についても同じです。この言葉は、単に宣言と言うよりも、より具体的な状況を説明することができます。
'class B;'はStandardeseの "_elaborated-type-specifier_"という唯一の構成要素である宣言です。また、非公式に前方宣言として知られています。しかし、私はこの質問が主に意見に基づいていると思います。 – cpplearner
'class B;'は宣言です。 'class A {B b;};'は定義です(しかし定義も宣言です)。 – Simple
"前方宣言"が何であるかを知っている人はあなたを理解するでしょう。 Pascalと同じようにC++でも同じように動作しますが、いずれかの言語だけが 'forward'キーワードを持っていても同じです。 –