【问题标题】:expected class-name before ‘{’ token error“{”标记错误之前的预期类名
【发布时间】:2015-01-19 16:23:11
【问题描述】:

我正在这里研究 SFML,我想使用 Legacy 创建我自己的 RenderWindow 类。但是 g++ 在 .hpp 中的第 7 行打印出这个 error: expected class-name before ‘{’ token

我已经准备好向 Google 询问这件事,但我没有找到我所期望的,所以我希望你能帮助我找到这个 :)

my_render_window.hpp

#ifndef MY_RENDER_WINDOW_HPP_
# define MY_RENDER_WINDOW_HPP_

# include <SFML/Window.hpp>

class MyRenderWindow : public sf::RenderWindow
{
public:
  MyRenderWindow();

protected:

};

#endif /* !MY_RENDER_WINDOW_HPP_ */

my_render_window.cpp

#include "my_render_window.hpp"

MyRenderWindow::MyRenderWindow(): sf::RenderWindow()
{

}

我在没有这些文件的情况下正确编译,并使用基础 sf::RenderWindow 类运行。

【问题讨论】:

  • 失败的行号是多少?
  • 我现在编辑,谢谢你知道它是 hpp 中的第 7 行
  • 显然链接器找不到 sf::RenderWindow。
  • @Lundin:链接器与此无关。
  • 文档说要包含RenderWindow.hpp for sf::RenderWindow

标签: c++ class sfml legacy


【解决方案1】:

好的,我不知道为什么,但是在 #include &lt;SFML/Window.hpp&gt; 之后包含 #include &lt;SFML/Graphics.hpp&gt; 它可以工作!

好奇怪... :( #include &lt;SFML/Graphics.hpp&gt; 可能包含我需要的文件。

【讨论】:

  • 看起来Graphics.hpp 包括Graphics/RenderWindow.hpp,这对应于他们列出的一般RenderWindow.hpp。我觉得这有点令人困惑,但没关系。
  • RenderWindow 是 SFML/Graphic 的一部分,而不是 SFML/Window,所以我的错...
猜你喜欢
  • 2021-09-22
  • 2017-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多