gpt4 book ai didi

c++ - 在 C++ 中返回字符串的最佳方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:20:30 24 4
gpt4 key购买 nike

我的问题很简单:如果我有一些类 Man 并且我想定义返回人名的成员函数,我更喜欢以下两种变体中的哪一种?

第一:

string name();

第二:

void name(/* OUT */ string &name);

第一个变体有点低效,因为它会产生不必要的拷贝(局部变量 -> 返回值 -> 赋值左侧的变量)。

第二个变种看起来很有效,但写起来让我哭了

string name;
john.name(name);

而不是简单

string name(john.name());

那么,我应该更喜欢哪种变体,效率和便利/可读性之间的适当权衡是什么?

提前致谢。

最佳答案

这是一个很好的问题,您提出这个问题表明您正在关注您的代码。不过,好消息是,在这种特殊情况下,有一个简单的出路。

第一个干净的方法是正确的方法。 The compiler will eliminate unnecessary copies , 在大多数情况下(通常在有意义的地方)。

编辑(2016 年 6 月 25 日)

不幸的是,David Abaraham 的网站似乎已经离线几年了,而那篇文章已经被遗失了(没有可用的 archive.org 拷贝)。我冒昧地将我的本地拷贝作为 PDF 上传以供存档,它 can be found here .

关于c++ - 在 C++ 中返回字符串的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10553091/

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