如果学生列表为空,我被要求使用try-catch异常处理来处理这种情况。我是新手,异常处理可以有人指导我吗?以下是平均方法的实现。我需要使用try-catch来确保列表不为空。
double classAverage()
{
int count = 0;
double sum = 0.0;
Container *temp = list;
if (temp == NULL)
{
cout << "List empty!";
return -1.0;
}
while (temp != NULL)
{
sum += temp->student->getGrade();
temp = temp->next;
count++;
}
return sum / count;
}
答案 0 :(得分:0)
由于changeGrade
是Student
的朋友,所以这应该有效:
void changeGrade(Student* s, int newGrade) {
s->grade = newGrade;
}
现在,您将指针s
重新指向新的Student
对象。你想要什么
是更改传递给函数的对象。
答案 1 :(得分:0)
没有足够的信息,但我认为您的代码可能如下所示:
Student* student = new Student("John", "Doe", 99, 1);
changeGrade(student, 9);
这根本不会改变学生,因为你按值传递指针,所以当你重新分配它时,原始对象(指针student
)不会改变。要使调用代码注意到更改,您必须通过 引用 (Student*&
- 推荐方式)或使用指向指针的指针({{1}另外,如果使用Student**);
方法,请不要忘记删除原始指针(Student*
),否则会泄漏内存。
Student**
,它可能是不好的做法和混乱。