Нарушение прав чтения? - PullRequest
0 голосов
/ 22 апреля 2020

Я пишу некоторый код C ++ для создания элемента класса, который я создал внутри вектора другого класса. Кажется, я могу создавать элементы внутри вектора, но когда я пытаюсь прочитать переменную элемента внутри вектора, я получаю ошибку

Exception thrown: read access violation.
_Right_data was 0x8.

внутри документа xstring.

Я думаю, что это может иметь какое-то отношение к тому, что я на самом деле не создаю каждую команду внутри вектора.

код, который я написал, является относительным:

    for (int x = 1; x <= mainLeague.getNumTeams(); x++) {
        std::cout << "please enter the name of team " << x << ":";
        std::getline(std::cin, currLine);
        parsed = parseText(currLine, &posResponsesTeamNames);
        if (parsed == 2) {
            prepForEnd();
            return 1;
        }
        else if (parsed == 0) goto enterTeamNames;
        mainLeague.createTeam(currLine);
    }
    std::cout << mainLeague.getName(5);
}
#pragma once
#include "team.h"
#include <string>
#include <vector>
#include <iostream>
class league
{
    std::vector<team*> teams;
    int numTeams, numInitTeams = 0;
    const float sysCon = 0.5;
public:
    league(int a);
    int getNumTeams();
    void initVector(int numTeams);
    void createTeam(std::string name);
    std::string getName(int num);
};
void league::createTeam(std::string name)
{
    if (numInitTeams < teams.size()) {
        team currTeam = team::team(name);
        teams.at(numInitTeams) = &currTeam;
        numInitTeams;
    }
    else {
        std::cout << "error max amount of teams already created";
    }
}
#pragma once
#include<string>

class team
{
    float RD;
    int rating;
    std::string name;
public:
    team(std::string name);
    team();
    std::string getName();
};
std::string team::getName()
{
    return team::name;
}
...