Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C2059:语法错误:';公共';在Qt内_C++_Qt - Fatal编程技术网

C++ C2059:语法错误:';公共';在Qt内

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

我犯了一个让我发疯的错误。我刚刚使用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: 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>和 Sturth。虽然我添加了C++类(而不是Qt类),没有从代码< QObjult< /C> >中获得。


<> >解决方案是从类中删除<代码>信号> <代码>时隙< /代码>单词,或从<代码> 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_对象宏才能正常工作(信号和插槽)然而,即使没有它,编译器错误也会消失。也就是说,一定要包含它,以避免出现一组不同的意外错误。为了完整起见,我想我会评论一下。