C ++ - “不允许不完整类型”错误意味着什么,我该如何解决?

时间:2018-03-19 01:35:31

标签: c++ sdl incomplete-type

虽然我在C ++中看到许多引用“不完全类型不允许”错误的问题,但我仍然无法弄清楚当编译器像这样尖叫我时编译器试图告诉我的内容。我已经能够将它与#include - 头文件有关,但我对“不完整类型”是什么以及它为什么“不允许”一无所知。尝试从SDL_Window继承时出现错误:

#pragma once
#include "SDL.h"

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

有人可以向我解释错误的含义,如何(通常)修复它,以及在我的情况下,我应该做些什么来阻止它发生?

1 个答案:

答案 0 :(得分:7)

  

C ++ - “不允许不完整类型”错误意味着什么

不完整类型表示类型SDL_Window没有定义。

错误表示类型不完整,并且在该上下文中不允许使用不完整的类型。在这种特殊情况下:不完整的类型不能用作基类。

  

我应该做些什么来阻止它发生?

不要尝试使用SDL_Window作为基类 - 它不应该以这种方式使用。

SDL_Window旨在用作不透明指针。某些SDL函数可能会返回SDL_Window*。您可以存储它,并将其作为参数发送到其他SDL函数。这就是它的全部用途。