当前位置:  开发笔记 > 编程语言 > 正文

将const char*缓存为返回类型

如何解决《将constchar*缓存为返回类型》经验,为你挑选了1个好方法。

在我的C++上读了一下,发现这篇关于RTTI(运行时类型识别)的文章:http://msdn.microsoft.com/en-us/library/70ky2y6k(VS.80) .aspx.嗯,这是另一个主题:) - 但是,我在type_info-class中偶然发现了一个奇怪的说法,即关于::name-method.它说:" type_info::name成员函数返回一个const char*以空字符结尾的字符串,表示该类型的人类可读名称.指向的内存是缓存的,不应该直接取消分配."

你怎么能自己实现这样的东西!?我以前经常在这个问题上苦苦挣扎,因为我不想char为调用者删除一个新的-array,所以我坚持std::string到目前为止.

因此,为了简单起见,假设我想创建一个返回的方法"Hello World!",让我们调用它

const char *getHelloString() const;

就个人而言,我会以某种方式使它(Pseudo):

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

  return returnVal
}

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

Thx提前



1> Greg Rogers..:

这个怎么样:

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

直接返回文字意味着字符串的空间由编译器在静态存储中分配,并且在程序的整个持续时间内可用.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有