赞
踩
一般遇到这种错误,首先想到的是没有包含.h文件,或者存在循环include的问题.于是反复检查是否包含了xxx类所在的.h文件,或者查看是否存在循环include.
今天遇到的问题却不是这两种,而是因为#ifndef HEADER_NAME的问题.因为新写的.h文件是复制一个之前存在.h文件后在此基础上改的,所以忘记了把#ifndef的内容给改掉,最后造成2个.h文件中有相同的宏判断:
#ifndef HEADER_NAME
#define HEADER_NAME
//头文件内容
#endif
因为宏判断的含义是,如果没有定义HEADER_NAME的话,则定义HEADER_NAME,然后执行头文件内容.反之,则直接结束.我后来建的头文件,在编译时之前的HEADER_NAME已经定义,导致头文件中的内容没有被执行,因此报"xxx类 does not name a type"的错误.因为这种情况和没有包含头文件的本质是一样的.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。