В моем классе utils у меня есть личная строка dir для решения - она устанавливается в конструкторе (hardcoded). У меня есть функция getter, которая возвращает строку. В другом файле у меня есть экземпляр utils (указатель). Когда я вызываю функцию getter, он возвращается пустым.Функция Getter возвращает неправильное значение?
main.cpp
utils* myUtils = new utils();
std::cout << myUtils->getSolutionDir() + " is the current directory" << std::endl;
delete myUtils;
utils.hpp
public:
utils();
~utils();
std::string getSolutionDir();
private:
std::string _solutionDir;
utils.cpp
utils::utils() {
std::string _solutionDir = "C:\\Users\\user\\Documents\\Coding\\CodeBlocks\\MettaRPG";
}
utils::~utils() {}
std::string utils::getSolutionDir() {
return _solutionDir;
}
ВЫХОД (GCC компилятор):
представляет собой трет он текущий каталог
'станд :: строка _solutionDir' в теле конструктора тени переменного-член. Опустите объявление типа. –
есть ли причина, почему вы используете 'new' и' delete' здесь? 'utils myUtils;' и никакое 'delete' не будет делать так же – user463035818
Я хотел передать myUtils в другой класс с инъекцией зависимости. Я думал, что это улучшит производительность. – Melkor