Как вернуть вектор объектов из класса в main.cpp - PullRequest
1 голос
/ 15 апреля 2019

У меня есть класс ученика, в котором есть функция, которая читает объекты ученика из текстового файла и добавляет их в вектор ученика. Это нормально и работает отлично. У меня есть эта функция в моем файле student.cpp. (Я думаю, что это правильно).

Как мне вернуть этот вектор из student.cpp на главную, где я могу получить доступ к элементам, отредактировать их, отсортировать и т. Д.

student.cpp

#include "pch.h"
#include "q1studentType.h"


q1studentType::q1studentType(std::string sFN, std::string sLN, std::string ts)
{
    studentFName = sFN;
    studentLName = sLN;
    testScore = ts;
}

void q1studentType::printStudent()
{
    std::cout << studentFName << " " << studentLName << "\t(" << testScore << " / "<< grade << ")" << std::endl;
}


std::vector<q1studentType>  q1studentType::initStudents() {
    std::vector<q1studentType> students;
    std::ifstream inFile("students.txt");

    for (q1studentType i;
        getline(inFile, i.studentFName, ',')
        && getline(inFile, i.studentLName, ',')
        && getline(inFile, i.testScore)
        ; )
    {
        students.push_back(i);
        i.printStudent();
    }

    return students;
}

Главная

int main() {

    //What I want to say in my head
    std::vector<q1studentType> students = q1studentType.initStudents();


}

Я поступаю правильно? Заранее спасибо

1 Ответ

1 голос
/ 15 апреля 2019

У вас проблема в коде:

Сделать initStudents () общедоступными и статичными в объявлении (обычно в заголовочном файле q1studentType.h)

public: static std::vector<q1studentType>  q1studentType::initStudents();

Код в .cpp выглядит нормально для меня.

И назовите это правильно в main.cpp

auto students = q1studentType::initStudents();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...