我是C ++编程的新手。我正在尝试在另一个类中创建一个类的对象数组。
当我试图运行这个时,我遇到了错误。其中一个错误是unknown override specifier
。有人可以告诉我,我该如何解决这个问题?
class Teacher
{
Student t[10];
public:
void setMark()
{
t[2].mark = 80;
}
};
class Student
{
public:
int mark;
};
int main()
{
return 0;
}
答案 0 :(得分:2)
在解析Teacher
的定义时,符号Student
未知。编译器不知道它命名一个类型。我的编译器(gcc)抛出一个错误:
main.cpp:3:5: error: ‘Student’ does not name a type
Student t[10];
^
我没有看到任何“未知的覆盖说明符”。这可能与您使用的不同编译器或您未向我们展示的其他一些问题有关。
解决方案?首先定义Student
,因为它不依赖于Teacher
。
答案 1 :(得分:1)
只需交换两个班级的顺序即可。编译器不知道Student是什么,因为当编译器到达行Student t[10];
顺便说一下,您可能希望使用vector<Student>
而不是数组。
答案 2 :(得分:1)
您正在班主任中使用学生对象,并且在致电之前甚至没有声明。如果你想在后者中使用前者,你必须在老师面前宣布学生班。
答案 3 :(得分:1)
您需要先声明学生课程或在代码顶部添加原型
class Student
{
public:
int mark;
};
class Teacher
{
Student t[10];
public:
void setMark()
{
t[2].mark = 80;
}
};
int main() {
return 0;
}