C++ C2059:语法错误:';公共';在Qt内
我犯了一个让我发疯的错误。我刚刚使用Qt Creator添加了一个类,但它不会生成C++ C2059:语法错误:';公共';在Qt内,c++,qt,C++,Qt,我犯了一个让我发疯的错误。我刚刚使用Qt Creator添加了一个类,但它不会生成 #ifndef LIBRARY_H #define LIBRARY_H class Library { public: Library(); signals: public slots: }; #endif // LIBRARY_H 错误是: library.h:12: error: C2059: syntax error : 'public' library.h:12: error: C233
#ifndef LIBRARY_H
#define LIBRARY_H
class Library
{
public:
Library();
signals:
public slots:
};
#endif // LIBRARY_H
错误是:
library.h:12: error: C2059: syntax error : 'public'
library.h:12: error: C2334: unexpected token(s) preceding ':'; skipping apparent function body
library.h:13: error: C2760: syntax error : expected '{' not '}'
library.h:13: error: C2143: syntax error : missing '}' before ';'
library.cpp:4: error: C2535: 'Library::Library(void)' : member function already defined or declared
library.cpp:8: error: C1004: unexpected end-of-file found
问题是Qt Creator添加了代码>信号< /COD>和
<> >解决方案是从类中删除<代码>信号> <代码>时隙< /代码>单词,或从<代码> QObjult< /C++ >和<代码> >包含 > P >问题是Qt Creator添加了代码>信号< /代码>和<代码>时隙< /代码>,即使我添加了C++类(与Qt类相反),并没有从<代码> QObjult< /C> >中获得。
解决方案是从类中删除
signal
和slot
字,或从QObject
和#include
类声明中也需要qu对象宏,如果是多重继承,那么QObject应该是第一个list@Shf感谢Q_对象宏确实是QObject
派生类正常工作(信号和插槽),但即使没有它,编译器错误也会消失。也就是说,一定要包含它,以避免出现一组不同的意外错误。我想我会说,为了完整性起见,类声明中还需要.Q_对象宏,如果是多重继承,QObject应该是第一个list@Shf感谢QObject
派生类确实需要Q_对象宏才能正常工作(信号和插槽)然而,即使没有它,编译器错误也会消失。也就是说,一定要包含它,以避免出现一组不同的意外错误。为了完整起见,我想我会评论一下。