
不知道咋回事,求解;还有我之前类封装时,它说string不能声明name等等,求解答


关注引自免费微信小程序:皆我百晓生
根据您提供的错误信息和代码片段,存在几个问题。我将逐一分析并给出相应的解决方案。
string类型时出现错误,提示“string does not name a type”,这表明在.cpp或.h文件中未包含必要的#include <string>。请确保在每个需要使用string的源文件开头添加此行。#include <string>
函数声明与实现不匹配:
student.h中的函数声明没有返回值,例如stu9(),而在实现中它有返回类型int。请确保函数声明与实现一致。// student.h
int stu9(manageSystem *p);
语法错误:
main.cpp中的switch case语句里,您的字符串拼接有误,请修正为:case 4:
manageSystem.stu3(p);
cout << "请输入您接下来要进行的操作" << endl;
break;
// ... 其他case也类似修复 ...
"." 操作符错误:
main.cpp的第37行报错“expected unqualified-id before '.' token”,这是因为您可能在调用成员函数后误用了.操作符,应删除不必要的.。类定义不完整:
manageSystem类似乎是在student.h中被部分定义了,但您提供的代码片段并不完整。确保整个类(包括其成员函数)都已正确地在类定义或者对应的.cpp文件中实现。成员变量声明:
Student的成员变量如name等应在类体内部声明,并且确保string已经正确包含。整理后的student.h应该看起来像这样:
#ifndef STUDENT_H
#define STUDENT_H
#include <string>
class Student {
public:
std::string name;
std::string stuNumble; // 可能是笔误,应该是stuNumber?
float score;
std::string phoneNumble; // 可能是笔误,应该是phoneNumber?
std::string homeTown;
std::string address;
};
class manageSystem {
public:
struct Student personArray[50];
int currentSize = 0;
void stu3(manageSystem* p, std::string stuNumber);
// ... 其他stuX函数的声明 ...
int stu9(manageSystem* p);
};
#endif // STUDENT_H
同时,请确保所有在student.h中声明的函数,在对应的student.cpp或其他合适的.cpp文件中有正确的实现。