我班上有一个STL字符串成员变量,
class A {
public:
const char* getData1() const { return data.c_str());
const string& getData2() const { return _data; }
private:
string _data;
};
Run Code Online (Sandbox Code Playgroud)
getData1()与getData2()哪一个更好?
返回字符串引用的那个是两个选择中较好的一个.如果在内部更改字符串,则先前返回的字符串引用仍然有效,但const char *可能不会.
比这些选择中的任何一个更好的可能是按价值返回.
std::string getData3() const { return data_; }
Run Code Online (Sandbox Code Playgroud)
另外,我建议不要在变量前面添加下划线,并删除该using namespace std;语句.
| 归档时间: |
|
| 查看次数: |
1216 次 |
| 最近记录: |