当前位置:   article > 正文

QT does not name a type问题_error: 'qvalueaxis' does not name a type qvalueaxi

error: 'qvalueaxis' does not name a type qvalueaxis *axisx; ^

最近用qt练习写一个主窗口点击按钮隐藏主窗口,显示次窗口,此窗口点击按钮隐藏次窗口,显示主窗口的小程序。

思路有两个:

1、使用信号和槽函数,这个没有太大的问题

2、让这两个类互相包含彼此的指针,然后在次窗口类中写一个设置本类中主窗口成员对象的方法,然后传递主窗口对象即可,相当于只写两个槽函数就ok了,但在编译的时候一直提示:does not name a type。

后来查资料是两个类相互引用这出现的问题,如果所用的是具体对象而不是指针的话,无解,因为:

两个类相互引用,不管哪个类在前面,都会出现有一个类未定义的情况。而类的声明就是提前告诉编译器,所要引用的是个类,但此时后面的那个类还没有定义,因此无法给对象分配确定的内存空间,因此只能使用类指针。

所以只能使用对象指针,而这样还出问题,需要前置声明来解决,具体方案如下:

假设两个类分别为:A.h   A.cpp   B.h   B.cpp

A.h中这样写:

  1. #include B.h
  2. class A{
  3. public:
  4. private:
  5. B *b;
  6. }

A.cpp中这样写:

  1. #include "A.h"
  2. //具体函数定义

B.h中这样写:

  1. class A;
  2. class B{
  3. public:
  4. //函数声明
  5. private:
  6. A *a;
  7. }

B.cpp中这样写:

  1. #include "A.h"
  2. #include "B.h"
  3. //具体函数定义

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号