相关疑难解决方法(0)

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

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

第一:

string name();
Run Code Online (Sandbox Code Playgroud)

第二:

void name(/* OUT */ string &name);
Run Code Online (Sandbox Code Playgroud)

第一个变体是低效的,因为它会产生不必要的副本(局部变量 - >返回值 - >赋值左侧的变量).

第二个变体看起来非常有效,但它让我哭泣

string name;
john.name(name);
Run Code Online (Sandbox Code Playgroud)

而不是简单

string name(john.name());
Run Code Online (Sandbox Code Playgroud)

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

提前致谢.

c++ string

64
推荐指数
4
解决办法
4万
查看次数

标签 统计

c++ ×1

string ×1