头文件中的字符串类型

时间:2017-09-09 12:31:24

标签: c++

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

#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. [错误]未知类型名称'string' 2. [错误]未知类型名称'学生'

2 个答案:

答案 0 :(得分:1)

string替换为std::string

你做了好事并摆脱了侵扰性的using namespace std;

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

答案 1 :(得分:0)

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

然后,您评论了using namespace std,这是一个很好的做法。见here为什么。但是现在你需要指定属于哪个命名空间字符串对象,所以有必要明确地写std::string而不是string

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