getter не возвращает значение
Имеется vector, который заполняется классе, необходимо передать его в другой класс, ну для этих целей сделал getter. По дебагу смотрел, возвращается пустой список. Проверил в классе, в котором заполняются данные, там vector заполнен некоторыми значениями. Как доходит программа до getter'а, то он оказывается пустой. Подскажите в чем причина?
Класс в котором заполняется vector (.h)
#ifndef INCLUDE_WALLSMANAGER_H_
#define INCLUDE_WALLSMANAGER_H_
#include <Wall.h>
#include <vector>
class WallsManager : IReader {
std::vector<Wall> wallsToRenderList;
std::vector<Wall> walls;
public:
void renderWalls();
void Read() override;
void renderVerticalWalls(Wall item);
void renderHorizontallWalls(Wall item);
const std::vector<Wall> &getWalls() const;
void setWalls(const std::vector<Wall> &walls_);
};
#endif // INCLUDE_WALLSMANAGER_H_
cpp файл
#include <WallsManager.h>
#include <BearLibTerminal.h>
#include <fstream>
#include <string>
#include <vector>
Wall wall{};
void WallsManager::Read() {
int xSt, ySt, xEnd, yEnd;
std::string direction;
std::ifstream file("C:/Users/Konstantin/CLionProjects/Game/levels/WallsLevel");
if (file) {
while (!file.eof()) {
file >> direction;
if (direction == "hor") {
file >> xSt >> xEnd >> ySt;
wall.setXStart(xSt);
wall.setXEnd(xEnd);
wall.setYStart(ySt);
wall.setDirection(direction);
wallsToRenderList.push_back(wall);
}
if (direction == "vert") {
file >> ySt >> yEnd >> xSt;
wall.setYEnd(yEnd);
wall.setYStart(ySt);
wall.setXStart(xSt);
wall.setDirection(direction);
wallsToRenderList.push_back(wall);
}
}
}
}
void WallsManager::renderVerticalWalls(Wall item) {
for (int i = item.getYStart(); i < item.getYEnd(); i++) {
terminal_put(i, item.getXStart(), '#');
wall.setCurrentX(item.getXStart());
wall.setCurrentY(i);
walls.push_back(wall);
}
}
void WallsManager::renderHorizontallWalls(Wall item) {
for (int i = item.getXStart(); i < item.getXEnd(); i++) {
terminal_put(i, item.getYStart(), '#');
wall.setCurrentX(i);
wall.setCurrentY(item.getYStart());
walls.push_back(wall);
}
}
void WallsManager::renderWalls() {
for (auto item : wallsToRenderList) {
if (item.getDirection() == "hor") {
renderHorizontallWalls(item);
}
if (item.getDirection() == "vert") {
renderVerticalWalls(item);
}
}
setWalls(walls);
}
const std::vector<Wall> &WallsManager::getWalls() const {
return walls;
}
void WallsManager::setWalls(const std::vector<Wall> &walls_) {
WallsManager::walls = walls_;
}
То есть vector walls в методе getWalls() показывается в дебаге, как пустой.