今天用Qt使用多继承发现报如下错误:

error C2039: "qt_metacall": 不是 "xxxxxx" 的成员

原格式

class TCPCommunication : public TcpBaseMethod,public QObject

其中​ ​TcpBaseMethod​ ​​就是一个普通的自定义类,没有继承任何东东,​ ​QObject​ ​​是Qt得类,后面发现需要​ ​更改继承​ ​的顺序,错误就解决了

更改后

class TCPCommunication : public QObject, public TcpBaseMethod

导致错误的原因可能是继承​ ​QObject​ ​​并加入​ ​Q_OBJECT​ ​​宏的时候,QT环境下在编译的时候会以​ ​第一个继承​ ​​的对象(模板?)来生成对应的​ ​moc文件​ ​​,如果带有​ ​Q_OBJECT​ ​​宏,必须把​ ​QObject​ ​放在第一个继承的位置

​参考博客​



error C2039: “staticMetaObject”: 不是“A”的成员 c:\Users\chuan\documents\visual studio 2010\Projects\Deriv

ject的编译问题问题描述继承一个类,再继承自QObject并添加Q_OBJECT的宏之后,编译不过。class A{public: A(){}; ~A(){};pri...

3.2024-10-02:用go语言,你可以通过遍历字符串s,找到以字符c开头和结尾的非空子字符串,然后统计它们的数量即可。 输入:s = “abada“, c = “a“。 输出:6。 解释:以 “a“ 4.MySQL 中变量的使用指南 5.vuepress - - - 首页底部版权信息加a标签超链接跳转或备案信息跳转链接