代码之家  ›  专栏  ›  技术社区  ›  Ell

C++(g++)在“MyWindows”(我的类名)之前编译错误,期望“=”等

  •  0
  • Ell  · 技术社区  · 16 年前

    我有一个非常奇怪的问题,下面的代码无法编译:

    #ifndef MYWINDOW_HPP_INCLUDED
    #define MYWINDOW_HPP_INCLUDED
    
    class MyWindow{
    
        private:
            WNDCLASSEX window_class;
            HWND window_handle;
            HDC device_context_handle;
            HGLRC open_gl_render_context;
            MSG message;
            BOOL quit;
    
        public:
            Window(int height=416, int width=544, WindowStyle window_style=WINDOWED);
            void Show();
            void Close();
            ~Window();
    
    };
    
    #endif // MYWINDOW_HPP_INCLUDED
    

    错误:应为“=”、“,”、“;”、'asm“或” 属性 '在'MyWindow'之前'

    我在这里看不到任何语法错误,尽管我可能是错的,因为我对c++非常(非常)陌生。谢谢你,呃。

    编辑: 是的,我试着把我的类从Window重命名为MyWindow来解决这个问题,但是没有成功,我忘了重命名构造函数。我已经更新了代码,但仍然没有解决问题。这是我的项目中唯一的其他代码,我链接了它,因为添加所有这些空间需要一段时间: here's the code

    6 回复  |  直到 16 年前
        1
  •  1
  •   Steve Fallows    16 年前

    很可能你的问题出现在发布的文件之前。在包含文件或以前的包含中。

        2
  •  1
  •   anon anon    16 年前

     #include <windows.h>
    

    在你代码的某个地方。如果:

     Window(int height=416, int width=544, WindowStyle window_style=WINDOWED);
    

     MyWindow(int height=416, int width=544, WindowStyle window_style=WINDOWED);
    
        3
  •  1
  •   Dustin    16 年前

    你确定你用的是 g++ 而不是 gcc class C++中的关键字不是C中的关键字,可能触发这样的警告。未经检验的理论,但我已经碰到过好几次了。

        4
  •  1
  •   Travis    16 年前

    这个头不是编译成C++,所以编译器不把“类”作为保留字。我得到了这个错误,这是因为我试图在一个ObjtoE-C源文件中包含一个C++头,解决方案是使用一个从Obj-C中包含的简化的C标头。

    ——C++ C++ Nob,他刚刚遇到这个问题。

        5
  •  0
  •   Fredrik Ullner    16 年前

    在函数定义之后使用分号。取下它们(请参考您的pastebin代码。)

        6
  •  0
  •   Ell    16 年前

    推荐文章