C++中'struct' type redefinition问题

z919701446 2012-01-07 11:47:54
//main.cpp
#include <iostream>//输入十个学生的学号,名字和成绩并排序
#include "student.h"

using namespace std;

int main()
{
Ourclass student;
student.Input();
student.Sort();
student.Print();
return 0;
}
//student.h
struct Student
{
int Num; //学号
char Name[2]; //名字
float Grades; //分数
};
#include "student.h"

class Ourclass
{
private:
Student s[N]; //定义N个学生
public:
void Input();
void Print();
void Sort();
};
//student.cpp
#include "student.h"
#include <iostream>

using namespace std;

void Ourclass::Input()
{
cout<<"请输入"<<N<<"个学生的学号、姓名及成绩"<<endl;
int i = 1;
for(;i <= N;i++)
{
cin>>s[i].Num>>s[i].Name>>s[i].Grades;
}
}
void Ourclass::Print()
{
int i = 1;
cout<<"学号 姓名 成绩"<<endl;
for(;i <= N;i++)
{
cout<<s[i].Num<<" "<<s[i].Name<<" "<<s[i].Grades<<endl;
}
}
void Ourclass::Sort()
{
int a,b;
Student temp;
for(a = 0;a != N;a++)
{
for(b = a+1;b != N;b++)
{
if(s[a].Grades <= s[b].Grades)
{
temp = s[a];
s[a] = s[b];
s[b] = temp;
}
}
}
}
这个程序编译时会出错:'Student' :'struct' type redefinition,但是我没重复定义Student类啊。大侠们帮忙看看到底是哪里错了吧!谢谢
...全文
432 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lala92 2012-06-09
  • 打赏
  • 举报
回复
40楼正解
yafeng_jiang 2012-01-07
  • 打赏
  • 举报
回复
'Student' :'struct' type redefinition

文件被重复争含了,也就重复编译了
Kimshuen 2012-01-07
  • 打赏
  • 举报
回复
多重包含哈
将student.h文件如下写:
//student.h
#ifndef STUDENT
#define STUDENT
struct Student
{
int Num; //学号
char Name[2]; //名字
float Grades; //分数
};
class Ourclass
{
private:
Student s[N]; //定义N个学生
public:
void Input();
void Print();
void Sort();
};
#endif

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧