class does not name a type
2017-02-19 09:14
260 查看
今天改代码,g++编译报错:class does not name a type。是一个类中的成员变量,该成员变量的类型是另一个类,仔细检查代码,头文件有包含啊,定义也应该能找到啊,不知道问题出在哪里。后来在网上找到资料:
出现这个编译错误主要有四个可能原因,现总结如下: 1.引用的类命名空间未包含 2.引用的类头文件未包含 3.包含了头文件,或者已经前置声明了,则说明所引用的类名写错。 4.循环引用头文件 前置声明要素: 1.前置声明需要注意以上提到的四点 2.尽可能的采用前置声明(做到只有包含继承类的头文件) 3.使用前置声明时,cpp文件中include 头文件次序必须先 包含前置声明的类定义头文件,再包含本类头文件。 否则会出现如下编译错误: expected constructor, destructor, or type conversion before ‘typedef' 检查代码,果然存在循环包含问题,解除循环包含,再添上前置声明,问题搞定~
出现这个编译错误主要有四个可能原因,现总结如下: 1.引用的类命名空间未包含 2.引用的类头文件未包含 3.包含了头文件,或者已经前置声明了,则说明所引用的类名写错。 4.循环引用头文件 前置声明要素: 1.前置声明需要注意以上提到的四点 2.尽可能的采用前置声明(做到只有包含继承类的头文件) 3.使用前置声明时,cpp文件中include 头文件次序必须先 包含前置声明的类定义头文件,再包含本类头文件。 否则会出现如下编译错误: expected constructor, destructor, or type conversion before ‘typedef' 检查代码,果然存在循环包含问题,解除循环包含,再添上前置声明,问题搞定~
相关文章推荐
- c++ class does not name a type
- Compiler Error Message: CS0234: The type or namespace name 'BorderDetails' does not exist in the class or namespace 'Infragistics.WebUI.Shared' (are you missing an assembly reference?)
- The serializable class Proname does not declare a static final serialVersionUID field of type long
- An SPI class of type org.apache.lucene.codecs.Codec with name 'Lucene62' does not exist
- c++ class does not name a type (转载)
- Ubuntu 编译opencv出错:‘GstMiniObjectClass’ does not name a type 解决方法
- c++ class does not name a type
- 错误:A SPI class of type org.apache.lucene.*** with name 'Whitespace' does not exist.
- The type or namespace name 'Windows' does not exist in the class or namespace 'System'
- c++ class does not name a type
- c++ class does not name a type
- The type or namespace name 'Zhaopin' does not exist in the namespace 'LMSoft' 问题的解决
- Qt 头文件互相包含会报错'<类名>' does not name a type
- android4.2 编译时出现 : error: 'z_const' does not name a type
- The serializable class XXX does not declare a static final serialVersionUID field of type long
- (转)关于The serializable class XXX does not declare a static final serialVersionUID field of type long的警告
- Android2.2:'pthread_rwlock_t' does not name a type: android 2.3版本以下不支持读写锁的解决办法
- error: 'uid_t' does not name a type
- Error:The type or namespace name 'Office' does not exist in the namespace 'Microsoft' 解决方法
- 关于The serializable class XXX does not declare a static final serialVersionUID field of type long的警告