Доступ к функции класса объектов в виде массива указателей другого класса - PullRequest
0 голосов
/ 14 октября 2019

y'all у меня возникла проблема при попытке доступа к функциям-членам объекта, который я сохранил в массиве указателей, заполненных объектами.

Заголовок:

#ifndef COURSEGRADES__H
#define COURSEGRADES__H
#include "Essay.h"
#include "FinalExam.h"
#include "PassFailExam.h"
#include "GradedActivity.h"

class CourseGrades:public Essay, public FinalExam, public PassFailExam, public GradedActivity
{
    public:
        CourseGrades();
        void setLab(GradedActivity &l);
        void setPassFailExam(PassFailExam &pf);
        void setEssay(Essay &e);
        void setPassFailFinal(FinalExam &fe);
        void print();
    private:
        GradedActivity *grades[4];
};

#endif // COURSEGRADES_H

CPP

#include "CourseGrades.h"
#include <iostream>
CourseGrades::CourseGrades()
{
    //ctor
}
void CourseGrades::setLab(GradedActivity &l)
{
    grades[0] = &l;
}
void CourseGrades::setPassFailExam(PassFailExam &pf)
{
    grades[1] =  &pf;
}
void CourseGrades::setEssay(Essay &e)
{
    grades[2] = &e;
}
void CourseGrades::setPassFailFinal(FinalExam &fe)
{
    grades[3] = &fe;

}
void CourseGrades::print()
{
    std::cout << grades[0]->getScore() << "\t" << grades[0]->getLetterGrade() << std::endl;
    std::cout << grades[1]->getScore() << "\t" << grades[1]->getLetterGrade() << std::endl;
    std::cout << grades[2]->getScore //this function exists in the Essay class but I can't access it from here.
}

Поэтому я пытаюсь получить доступ к третьему объекту в массиве оценок, который является объектом класса эссе, которыйвключает в себя уникальную функцию, которая отделена от функции получения оценки в классе GradeActivity. Мне также нужно получить доступ к его уникальному методу getLetterGrade, но как только я получу один, я смогу узнать, как получить другой. Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...