头文件中的字符串类型

String type in header files

本文关键字:字符串 类型 文件      更新时间:2023-10-16

我正在处理一个项目,我有三个头文件,每个头文件定义一个单独的结构,其中包含一些用于访问变量的函数,这是学生结构的示例:

#include<string.h>
//using namespace std;
struct student
{
int studentId;
string fname;
string lname;
};
void SetId(student * stu,int id)
{
stu->studentId=id;
}
void SetFirstName(student * stu,string name)
{
stu->fname=name;    
}
void SetLastName(student * stu,string name)
{
stu->lname=name;
}
int GetId(student * stu)
{
return stu->studentId;
}
string GetFirstName(student * stu)
{
return stu->fname;
}
string GetLastName(student * stu)
{
return stu->lname;
}

当我编译这个文件时,我得到两个错误: 1. [错误] 未知类型名称"字符串" 2. [错误] 未知类型名称"学生"

string替换为std::string

你已经做了一件好事,摆脱了侵入性using namespace std;.

最后,为什么不让"全局函数"成为student类本身的成员呢?那么你就不需要那个student*指针了。 C++不是C你知道的。

由于您使用的是C++,因此应避免包含.h标头。C++中有<string>标头来操作字符串,因此请使用它。

然后,您已经评论了using namespace std这是一个很好的做法。请参阅此处原因。但是现在你需要指定命名空间字符串对象属于哪个,所以有必要显式写入std::stringstring的 istead。

最后,我引用@Bathsheba答案。您应该创建一个班级学生。