gpt4 book ai didi

c++ - 缓存 const char * 作为返回类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:23 25 4
gpt4 key购买 nike

阅读了一些关于我的 C++ 的内容,发现了这篇关于 RTTI(运行时类型识别)的文章: http://msdn.microsoft.com/en-us/library/70ky2y6k(VS.80).aspx .好吧,那是另一个主题 :) - 然而,我在 type_info 类中偶然发现了一个奇怪的说法,即关于 ::name 方法。它说:“type_info::name 成员函数返回一个 const char* 到一个以 null 结尾的字符串,表示该类型的人类可读名称。内存指向已缓存,永远不应直接释放。”

你怎么能自己实现这样的东西!?我以前经常在这个确切的问题上苦苦挣扎,因为我不想为调用者创建一个新的 char 数组来删除,所以我一直坚持使用 std::string 到目前为止。

因此,为了简单起见,假设我想制作一个返回“Hello World!” 的方法,我们称它为

const char *getHelloString() const;

就个人而言,我会像这样(伪):

const char *getHelloString() const
{
char *returnVal = new char[13];
strcpy("HelloWorld!", returnVal);

return returnVal
}

.. 但这意味着调用者应该在我的返回指针上执行 delete[] :(

提前致谢

最佳答案

这个怎么样:

const char *getHelloString() const
{
return "HelloWorld!";
}

直接返回文字意味着字符串的空间由编译器在静态存储中分配,并且在整个程序运行期间都可用。

关于c++ - 缓存 const char * 作为返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/200857/

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