头文件中的字符串类型
String type in header files
我正在处理一个项目,我有三个头文件,每个头文件定义一个单独的结构,其中包含一些用于访问变量的函数,这是学生结构的示例:
#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::string
string
的 istead。
最后,我引用@Bathsheba答案。您应该创建一个班级学生。
相关文章:
- 如何检查模板类中的变量是否为字符串类型?
- C++类字符串类型的迭代器
- 如何将字符串指针数组转换为字符串类型的智能指针向量?
- 字符串类型的 2d 数组(C++;)
- 在 Rcpp 中的字符串类型之间转换时出错
- 为什么字符串类型会导致 c++ 程序无法运行?
- 如何将字符串类型转换为 ostringstream
- 当正斜杠运算符应用于C++中的字符串类型时,它会做什么
- 添加字符串类型的类成员会导致调用基类函数而不是子函数
- 我在 c++ 中声明字符串类型时遇到问题
- 对齐C++字符串类型问题 std::字符串到 TStr
- C++无符号字符串类型的正则表达式
- 当 JSON 值应为 INT 但以字符串类型发送时,RapidJSON 崩溃
- 如何使用 std::find 从向量的第一个元素中查找字符串<字符串对<字符串、字符串> >类型?
- 我想添加两个字符串类型的矩阵.用户将不会输入行数或列的数量.用户将仅输入数组
- 为什么数组(字符串类型)的大小是 24 字节,带有单个空格元素
- 如何根据定义的字符串类型在“std::cout”和“std::wcout”之间进行选择
- C++ 仅当模板为字符串类型时执行小写转换
- 字符串类型的 C++ 模板无法编译
- 如何使用新字符串而不是分配器创建自己的字符串类型向量?