头文件中的类定义,包括字符串
Class definition in header file and including string
这是我当前的标头集合:
#include "Header1.h"
#include "BedAndMatress.h"
#include "Sofa.h"
#include "Table.h"
#include iostream
#include fstream
#include iomanip
#include string
#include cmath
#include vector
using namespace std;
int main()
包含和命名空间 std 位在我的主文件和"函数定义.cpp"文件中。但是,编译器会抛出一些错误:
e:computingcoursework2programme.cpp(2) : fatal error C1083: Cannot open include
file: 'BedAndMatress.h': No such file or directory
最初我在 Header1.h 文件中定义了我所有类的定义,但它抱怨文件和类定义的意外结束,所以我决定将它们分开。该文件包含在项目中,所有其他文件似乎都在工作,所以我不确定发生了什么。我还创建了一个新的头文件,它只是叫做 Bed,但它有同样的错误,所以我改变了它,认为可能已经有一个具有该名称的标准文件(显然是长镜头)是否有最大数量的头文件?
此外,在类定义中,一些成员对象应该是字符串...
#ifndef CLASS_Bed
#define CLASS_Bed
//////BED
class Bed:public Item
{
string frame;
string frameColour;
string mattress;
public:
int Bed(int count);
int Bed(int count, int number, string name, string frm, string fclr, string mtres);
void count();
void printDetails();
}
#endif
但它无法识别类型说明符。
error C2501: 'string' : missing storage-class or type specifiers
我应该包括字符串吗?我在某处读到这可能会导致问题,所以如果这不是解决方案,我应该如何继续?
塔多Hx
我应该包括字符串吗?我在某处读到这可能会导致问题,所以如果这不是解决方案,我应该如何继续?
您应该包括<string>
.您可能读到using namespace std;
放在标题中是不行的,这是真的。但是,如果需要,包含标题并没有错。不过,您需要限定string
的用途:
#ifndef CLASS_Bed
#define CLASS_Bed
//////BED
#include <string>
class Bed:public Item
{
std::string frame;
std::string frameColour;
std::string mattress;
public:
int Bed(int count);
int Bed(int count, int number, std::string name, std::string frm, std::string fclr, std::string mtres);
void count();
void printDetails();
}; //<-- note semi-colon here
#endif
问题是您在类定义中的右大括号后缺少分号。
最初我在 Header1.h 中定义了我所有类的定义 文件,但它抱怨文件和类的意外结束 定义,所以我决定将它们分开。
这是因为您忘记在类定义后放置分号
class Bed:public Item
{
...
}; //notice the semicolon
#endif
最初我在 Header1.h 文件中定义了我所有类的定义,但它抱怨文件和类定义的意外结束,所以我决定将它们分开。
这可能意味着你在某处错过了一个右括号()
、]
、}
或>
);如果它到达文件的末尾而没有所有括号关闭,编译器将给出该错误。但是,无论如何,将类放在单独的标头中是个好主意。
致命错误 C1083:无法打开包含 文件:"BedAndMatress.h":没有这样的文件或目录
这说明它找不到名为 "BedAndMatress.h"
的文件。您有该名称的文件吗?它是否与包含它的源文件位于同一目录中?如果没有,是否在包含路径中指定目录?文件名的拼写是否完全一样,大写?
错误 C2501:"字符串":缺少存储类或类型说明符
首先,您需要包含<string>
以获取定义。然后你需要使用它的全名 std::string
.您可能很想将using namespace std;
放在头文件中,但这是一个坏主意 - 在全局命名空间中转储名称可能会破坏包含标头的其他文件。在源文件中这样做也不是一个好主意,但至少在那里,损害只会影响您自己的代码。
在类定义末尾还缺少一个;
。
- 如何将字符串与结构(也包括字符串)进行比较?
- 解析C++中的完整(从头到尾)字符串,包括所有空格
- 包括<字符串>,使用不完整的类型"std::string"
- 提升正则表达式 cpp 用于查找 %% 之间的字符串,输出不包括 % 字符本身
- 将整数转换为阵列(包括领先的零),而无需使用字符串
- 在字符串上迭代,但将定界器保持在子字符串中,包括其他规则
- 我如何解析包括分数时间的日期时间字符串
- 包括字符串(在C 中)时发生错误
- 字符串常量(包括ZenLib/Ztring.h)之前应为不合格id
- 在不使用c++中的库函数的情况下,计算不包括null字符的字符串长度
- Visual Studio c++ 包括字符串最大长度
- 提升::精神.分析不包括子字符串的字符串
- 头文件中的类定义,包括字符串
- C++ 中的字符串标记化,包括分隔符字符
- C++文件写入包括字符串的内存地址,而不是内容
- 如何使用标准库(包括boost)实现简单的字符串模式匹配
- 包括c++和eclipse上的字符串类
- 从字符串中删除空格,不包括 " 和 ' C++对之间的部分
- 什么更好:包括字符串类或使用字符数组?
- c++ 14逐字提取带引号的字符串,包括引号