#include <iostream> #include <cstring> using namespace std; class StudentInfo { /********* Begin *********/ //在此处声明StudentInfo类 public : int Id; char Class[20],stuId[13],Name[10]; void SetInfo(int sid,char *name,char* cla,char* phone); void PrintInfo(int sid,char *name,char* cla,char* phone); { /********* End *********/ }; /********* Begin *********/ //在此处定义StudentInfo类 void SetInfo(int sid,char *name,char* cla,char* phone) { strcpy(Name,name); strcpy(Class,cla); strcpy(stuId,phone); Id=sid; }; void PrintInfo(int sid,char *name,char* cla,char* phone) { cout<<""<<stuId<<endl; cout<<""<<Name<<endl; cout<<""<<Id<<endl; cout<<""<<Class; } /********* End *********/
时间: 2023-07-18 16:45:29 浏览: 146
这段代码存在一些问题。首先,类的声明和定义应该在同一个文件中,这里将它们分开写在了不同的地方。其次,SetInfo和PrintInfo方法的参数列表与类中声明的不一致,应该去掉参数。另外,SetInfo方法中的stuId和phone两个变量名应该交换,因为它们的含义并不对应。最后,PrintInfo方法中输出的信息应该与SetInfo方法中设置的信息一致,应该去掉参数。
一个修改后的代码如下:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
class StudentInfo {
public:
int Id;
char Class[20], stuId[13], Name[10];
void SetInfo(int sid, char* name, char* cla, char* phone);
void PrintInfo();
};
void StudentInfo::SetInfo(int sid, char* name, char* cla, char* phone) {
Id = sid;
strcpy(Name, name);
strcpy(Class, cla);
strcpy(stuId, phone);
}
void StudentInfo::PrintInfo() {
cout << "学号:" << stuId << endl;
cout << "姓名:" << Name << endl;
cout << "班级:" << Class << endl;
cout << "学院:" << Id << endl;
}
int main() {
StudentInfo s;
s.SetInfo(1001, "张三", "计算机科学与技术", "20190101001");
s.PrintInfo();
return 0;
}
```
阅读全文