Мне было интересно, может кто-нибудь подсказать мне, почему приведенный ниже код не ведет себя так, как я ожидаю. Под этим я подразумеваю, что я ожидаю, что строка
std::cout << myEngine.getDesc() << std::endl;
выведет: "Desc1"
Но я получаю пустую строку? Я подумал, что, может быть, это потому, что я неправильно разделяю свой элементарный код на разные файлы, но получаю то же самое, когда помещаю весь код в один файл.
StringErrorTest. cpp
#include <iostream>
#include "Engine.h"
int main()
{
std::cout << "Compiling & Running!";
Engine myEngine;
std::string t1 = "Hello ";
std::cout << myEngine.getDesc() << std::endl;
std::cout << t1 << std::endl;
return 0;
}
Engine.h
#include <string>
class Engine {
private:
std::string m_Description;
std::string m_Description2;
public:
Engine();
std::string getDesc();
void setDesc(std::string desc);
std::string getDesc2();
void setDesc2(std::string desc2);
std::string spitItOut();
};
Engine. cpp
#include "Engine.h"
Engine::Engine()
{
std::string m_Description = "Desc1";
std::string m_Description2 = "Desc2";
}
std::string Engine::getDesc()
{
return m_Description;
}
std::string Engine::getDesc2()
{
return m_Description2;
}
Кстати, я искал похожие вопросы, но все они были немного сложнее, чем мои. Я чувствую, что здесь происходит очень базовое c недоразумение.