一般来说,STL容器的getter返回类型应该是什么?

NoS*_*tAl 2 c++ getter-setter

可能重复:
访问者应该返回值还是常量引用?

首先,让我们忽略制定者和吸气者不是邪恶的.:)

我的问题是,如果我有一个std::容器作为成员的类,让我们说string,getter的返回类型应该是什么?我有点喜欢const T&相比,T性能方面的原因......我知道,大多数时候用户做一个拷贝反正,但我想不是所有的时间.我错了吗?

所以一般情况更好:

std::string get_name() const;
Run Code Online (Sandbox Code Playgroud)

要么

const std::string& get_name() const;
Run Code Online (Sandbox Code Playgroud)

Ker*_* SB 7

返回一个常量引用.如果用户想要制作副本,则不会背影.