Проблема C++ с перегруженным конструктором и массивами
Мне трудно понять синтаксис того, как я должен вызывать функцию-член, чтобы скопировать значения моего массива в соответствующие переменные-члены. Это специально для перегруженного конструктора, потому что я думаю, что все остальные функции верны, но они могут и не быть таковыми.
Student.cpp
#include <iostream> #include <fstream> #include <string> #include "Student.h" using namespace std; void Student::setID(int tID) { ID = tID; } void Student::setFName(string f) { firstName = f; } void Student::setLName(string l) { lastName = l; } void Student::setScores(int list[]) { for (int i = 0; i < 5; i++) scores[i] = list[i]; //scores[5] = list[5]; } int Student::getID() { return ID; } string Student::getFName() { return firstName; } string Student::getLName() { return lastName; } int Student::getWeightedTotal() { int WeightedTotal = 0; WeightedTotal = 25 % (scores[0]) + 25 % (scores[1]) + 30 % (scores[2]) + 10 % (scores[3]) + 10 % (scores[4]); return WeightedTotal; } char Student::getGrade() // should be working { char grade = 0; if (getWeightedTotal() >= 90) grade = 'A'; else if (getWeightedTotal() >= 80) grade = 'B'; else if (getWeightedTotal() >= 70) grade = 'C'; else if (getWeightedTotal() >= 60) grade = 'D'; else grade = 'F'; return grade; } void Student::printStudent() { cout << "Student ID" << " " << "Full Name" << " " << "Scores" << " " << "Weighted Total" << " " << "Grade" << endl; cout << ID << " " << firstName << " " << lastName << " " << scores[0] << scores[1] << scores[2] << scores[3] << scores[4] << " " << getWeightedTotal() << " " << getGrade() << endl; } Student::Student() { ID = 0; firstName = ""; lastName = ""; for (int i = 0; i < 5; i++) // for loop to set each element to 0 scores[i] = 0; //scores[5] = { 0 }; } Student::Student(int tID, string f, string l, int list[]) { setID(tID); setFName(f); setLName(l); for (int i = 0; i < 5; i++) setScores(list[i]); //setScores(list); }
Проблема находится прямо над этим текстом в перегруженном конструкторе, и я не знаю, что делать
Что я уже пробовал:
Я пытался
for (int i = 0; i < 5; i++) setScores(list[i]);
Тоже пробовал просто
setScores(list);
также пробовать
for (int i = 0; i < 5; i++) scores[i] = list[i];