C++编译时遇到“错误:‘SomeClass’没有命名一个类型”
2017-05-12 16:01
369 查看
报错如题,若使用Linux英文系统,可能报错内容如下:
Error:'SomeClass' does not name a type
这是因为SomeClass.h还没有被编译,编译器编译此段代码时找不到SomeClass类的定义。
解决方式是,在报错的类前先声明SomeClass类:
一般就可以解决问题
报错实例:
解决方案:
class MyMessageBox;
class User { public: MyMessageBox dataMsgBox; }; class MyMessageBox { public: void sendMessage(Message *msg, User *recvr); Message receiveMessage(); vector<Message> *dataMessageList; };
此时,你还有可能遇到另一个错误:
错误:字段 ‘dataMessageList'类型不完全
这是因为没有包含此变量类型的声明头文件,加一个include就好
#include<vector>
using namespace std;
Error:'SomeClass' does not name a type
这是因为SomeClass.h还没有被编译,编译器编译此段代码时找不到SomeClass类的定义。
解决方式是,在报错的类前先声明SomeClass类:
Class SomeClass;
一般就可以解决问题
报错实例:
class User { public: MyMessageBox dataMsgBox; }; class MyMessageBox { public: void sendMessage(Message *msg, User *recvr); Message receiveMessage(); vector<Message> *dataMessageList; };
解决方案:
class MyMessageBox;
class User { public: MyMessageBox dataMsgBox; }; class MyMessageBox { public: void sendMessage(Message *msg, User *recvr); Message receiveMessage(); vector<Message> *dataMessageList; };
此时,你还有可能遇到另一个错误:
错误:字段 ‘dataMessageList'类型不完全
这是因为没有包含此变量类型的声明头文件,加一个include就好
#include<vector>
using namespace std;
相关文章推荐
- 在创建MFC项目时,如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如我今天遇到的:
- 使用CMake编译QT程序的一个例子(没有使用Qt特殊class)
- “/”应用程序中的服务器错误。 找到了多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由没有指定命名空间来搜索匹配此请求的
- cocos2d 编译报 错误 2 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
- C++第二坑:命名空间没有指定的错误
- 编译过程中遇到的错误---没有包含的APK
- C++编译错误"a storage class can only be specified for objects and functions"解决
- .NET下编译C++代码时出现"error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int"错误的解决方法。
- 编译mysql5.1.68 make时候出现./include/my_global.h:1088: 错误:对 C++ 内建类型 ‘bool’ 的重声明
- C++编译遇到参数错误(cannot convert parameter * from 'const char [**]' to 'LPCWSTR')
- 转载一个老外的编译错误hope useful to some one really need it
- C#编译错误 CS0246: 找不到类型或命名空间名称“……”(是否缺少 using 指令或程序集引用?)
- 关于包含头文件而编译时却一个未定义错误的原因(未使用命名名字空间)
- AspNetPager编译错误命名空间“Wuqi.Webdiyer”中不存在类型或命名空间名称“PageChangedEventArgs”
- C++初始化列表问题,类中有一个对象类型的数组成员变量,在初始化列表中初始化时报错“[]”操作符语法错误
- Java的一个编译错误解决方法:需要class interface enum
- C++中有string类,string是一个类不是一种类型,c语言中没有
- vs2008编译遇到error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
- 一个VC编译错误引发的对显示类型转换的思考(static_cast、dynamic_cast和const_cast)
- java工程项目里,在一个包里面,不能出现同名的类名,这问题是刚接触java才会遇到的,特别是新手一般都没有建立包,而是使用默认的,易出现同名的类名,导致eclipse提示错误