【发布时间】:2016-02-24 17:03:43
【问题描述】:
我现在正在做这个项目,这是我第一次使用 makefile。
我得到的错误是:
HW1.cpp:45:55:错误:无法将“Student1”从“main()::Student”转换为“Student”主文件:
#include "header.h"
#include "function.h"
main()
{
int input = 0;
bool loop = 1;
#include "list.cpp"
ResetArray(arrayCou, arrayStu);
while (loop)
{
cout << "cmd> ";
cin >> input;
switch (input)
{
case 1:
AddCourse(&Course1, arrayCou);
break;
case 2:
AddStudent(&Student1, arrayStu);
break;
case 3:
AddStuCourse(&Student1, &Course1, arrayStu, arrayCou);
break;
case 4:
AddGrade(&Student1, &Course1, arrayStu, arrayCou);
break;
case 5:
PrintCourse(&Student1, &Course1, arrayStu, arrayCou);
break;
case 6:
PrintStudent(&Student1, &Course1, arrayStu, arrayCou);
break;
case 7:
PrintStuCourse(&Student1, &Course1, arrayStu, arrayCou);
break;
case 8:
AvgStuCourse(&Student1, &Course1, arrayStu, arrayCou);
break;
case 9:
loop = 0;
break;
default:
break;
}
}
}
函数声明:
#include "header.h"
void ResetArray(Course arrayCou[][101][5], Student arrayStu[][3]);
void AddCourse(Course Course1, Course arrayCou[][101][5]);
void AddStudent(Student Student1, Student arrayStu[][3]);
void AddStuCourse(Student Student1, Course Course1, Student arrayStu[][3], Course arrayCou[][101][5]);
void AddGrade(Student Student1, Course Course1, Student arrayStu[][3], Course arrayCou[][101][5]);
void PrintCourse(Student Student1, Course Course1, Student arrayStu[][3], Course arrayCou[][101][5]);
void PrintStudent(Student Student1, Course Course1, Student arrayStu[][3], Course arrayCou[][101][5]);
void PrintStuCourse(Student Student1, Course Course1, Student arrayStu[][3], Course arrayCou[][101][5]);
void AvgStuCourse(Student Student1, Course Course1, Student arrayStu[][3], Course arrayCou[][101][5]);
头文件:
#include <iostream>
#include <string.h>
#include <cstring>
#include <iomanip>
using namespace std;
const int MAXSIZE = 101;
struct Student
{
string ID;
string name;
string majors;
};
struct Course
{
string ID;
string title;
string department;
double grade;
};
Student arrayStu[101][3];
Course arrayCou[101][101][5];
Course Course1;
Student Student1;
函数定义真的很长,所以我不想包括所有的,但是有什么方法可以修复makefile吗?在主函数中每次使用 Student1 或 Course1 都会出现相同的错误。
【问题讨论】:
-
应该是
int main() -
你忘记了 main 的返回类型。
-
顺便说一句,显示您的
Makefile或至少显示编译命令 -
#include "list.cpp"- 在函数中包含cpp?真的吗? -
顺便说一句,您的头文件似乎没有include guards。如果是这样,请在尝试其他任何操作之前添加它们。