1. ホーム
  2. c++

[解決済み] C++ - 「Incomplete type not allowed」エラーの意味と修正方法について教えてください。

2022-01-31 19:12:04

質問内容

C++の"Incomplete type not allowed"エラーに言及した質問を多く見かけますが、コンパイラがこのように叫ぶときに何を伝えようとしているのか、まだ理解できません。私は、このエラーは次のものと関係があることを理解しました。 #include -しかし、quot;incomplete type" が何なのか、なぜそれが許されないのかについては、全く分かりません。を継承しようとすると、エラーが発生します。 SDL_Window というように

#pragma once
#include "SDL.h"

class Window : public SDL_Window
{
public:
  Window();
  ~Window();
};

どなたか、このエラーの意味、(一般的な)修正方法、そして私の場合、このエラーを起こさないようにするために何をすべきか、説明していただけませんか?

解決方法は?

<ブロッククオート

C++ - 「Incomplete type not allowed」エラーの意味するもの

不完全な型とは、その型に対する定義がないことを意味します。 SDL_Window .

このエラーは、型が不完全で、そのコンテキストで不完全な型が許可されていないことを意味します。この特別なケースでは、不完全な型は基底クラスとして使用することができません。

このような事態を防ぐにはどうしたらよいのでしょうか?

を使おうとしないでください。 SDL_Window を基底クラスとして使用することを意図していません。

SDL_Window は不透明なポインタとして使用されることを意図しています。SDL 関数によっては SDL_Window* . これを保存しておき、他の SDL 関数の引数として送信することができます。そのために使用されるのはそれだけです。