C++】「不完全なクラス型へのポインタは許可されません」を解決する方法
2022-02-22 22:33:04
理由 その型へのポインタによってメンバ関数が呼び出される場合、その型は完全に定義されていません。
原因は (1)定義の順序が妥当でない。コンパイラはポインタに出会ったとき、それが初期化されていることを知った上で、ポインタのためのメモリを確保する。したがって、ある型のメンバ関数を呼び出す必要がない場合、その型が正しく宣言されていれば、定義の順序は理論的に任意である。呼び出しは完全な定義の後に行わなければなりません。
(2) 定義されたヘッダーファイルが、(cxx)ファイルに含まれていない。
例 以下の置換は不正確です。
class Car;
class Apple;
class Apple{
Car aCar;
}
};
class Car{
Apple anApple;
};
int main(){
return 0;
}
関連
-
解決策:エラー:'cout'は型名ではありません。
-
c++ エラー: 'map' は型名ではありません。
-
C++のコンパイルエラーで修飾子が破棄される [-fpermissive] 。
-
不完全なクラス型へのポインタが許可されていないのですが、どのようなエラーですか?
-
C++: エラー C2280: 削除された関数を参照しようとしています。
-
抽象クラス型 "my class "のオブジェクトは使用できません 解決方法
-
C++ ダイナミックオープンスペース
-
C/C++ におけるランダム関数 rand() および srand() の使用法
-
C++11 ランダムライブラリ乱数
-
C++共通ライブラリ関数一覧
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
C++のostreamの詳細な使用方法
-
C++-サンプリング関数 GridSampling (要サンプリング高速化)
-
error: 'vector' does not name a type
-
コンパイルエラー: 制御が非ボイド関数の末尾に達する可能性がある
-
ソースファイルをコンパイルするとDev C++のランタイムエラーが発生し、コンパイルできない
-
C++] error: 'const xxx' を 'this' 引数として渡すと修飾子が破棄される [-fpermissive] [C++] error: 'const xxx' を 'this' 引数として渡すと修飾子が破棄される。
-
警告:組み込み関数 'malloc' の互換性のない暗黙の宣言を修正する方法
-
C++ [エラー] 'std::string {aka std::basic_string<char>}' を 'char*' に変換できないエラー
-
const char*' から 'char*' への変換が無効です。
-
ISO C++ではポインタと整数の比較は禁止されています[-fpermissive]。