Getter函数返回错误的值?

时间:2016-11-14 19:17:39

标签: c++ string

在我的utils类中,我有一个私有解决方案dir字符串 - 它在构造函数中设置(硬编码)。我有一个返回字符串的getter函数。在另一个文件中,我有一个utils实例(指针)。当我调用getter函数时,它返回空。

的main.cpp

<img src="http://picture.com/1.jpg" />

utils.hpp

utils* myUtils = new utils();

std::cout << myUtils->getSolutionDir() + " is the current directory" << std::endl;

delete myUtils;

utils.cpp

public:
    utils ();
    ~utils ();
    std::string getSolutionDir();
private:
    std::string _solutionDir;

OUTPUT(GCC编译器):

  

是当前目录

1 个答案:

答案 0 :(得分:2)

在构造函数中查看这一行:

std::string _solutionDir = "C:\\Users\\user\\Documents\\Coding\\CodeBlocks\\MettaRPG";

此行声明一个名为_solutionDir本地变量,并将其设置为等于指示的字符串,而不是将现有数据成员命名为_solutionDir并更改其值。要解决此问题,请从此行中删除std::string

或者,如果您有C ++ 11编译器,请考虑将您的类更改为如下所示:

public:
    ~utils ();
    std::string getSolutionDir();
private:
    std::string _solutionDir = "C:\\Users\\user\\Documents\\Coding\\CodeBlocks\\MettaRPG";