【发布时间】:2020-05-21 11:09:53
【问题描述】:
我在任何地方都找不到我的问题的答案,我对 OOP 还很陌生,所以请原谅我。 好的,我有以下代码:
class Group
{
public:
struct Student
{
char name[40],
int grades[5]};
}
Student s[10];
.....
private: double med(???)
{
.....
}
}
那么在哪里???我想将单个学生的成绩作为参数并返回它们的平均值。我不知道我应该如何声明它们,我尝试了很多方法,但每次都会出错。
很多
【问题讨论】:
-
你的
Student结构用Group类包裹。所以你需要创建一个类对象,然后才能使用它 -
您确定要通过学生的成绩,而不仅仅是姓名吗?这样你就可以做到
group.med("Suzy")(对应的原型是double med(const char * name))。当然,如何处理不存在的学生取决于您,也许返回 -1 是个好主意。 -
公平地说,将原始数组传递给函数的语法可能有点奇怪,这也是建议改用std::array 或std::vector 的原因之一。如果你真的坚持使用原始数组,你需要像
double med(int (&grades)[5])这样的东西。 -
@Botje 学生们不是不存在的。我有他们所有的姓名和成绩,我只需要返回每个学生的平均成绩。作为唯一的参数,我应该有 s[i].notes[5] 但我在语法部分遇到了麻烦。我不知道,也找不到针对这种特殊情况的任何答案。
-
如果你想通过成绩,你为什么不这样做呢?或者您在尝试这样做时遇到了什么问题?
标签: c++ oop methods struct parameters