gpt4 book ai didi

c++ - Getter 函数返回错误值?

转载 作者:行者123 更新时间:2023-11-28 01:57:41 25 4
gpt4 key购买 nike

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

主要.cpp

utils* myUtils = new utils();

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

delete myUtils;

实用程序.hpp

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

实用程序.cpp

utils::utils () {
std::string _solutionDir = "C:\\Users\\user\\Documents\\Coding\\CodeBlocks\\MettaRPG";
}
utils::~utils () {}

std::string utils::getSolutionDir() {
return _solutionDir;
}

输出(GCC 编译器):

is the current directory

最佳答案

看看构造函数中的这一行:

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

此行声明了一个名为 _solutionDir局部变量,并将其设置为等于指示的字符串,而不是采用名为 _solutionDir 的现有数据成员并改变它的值(value)。要解决此问题,请从此行中删除 std::string

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

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

关于c++ - Getter 函数返回错误值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40596206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com