【发布时间】:2010-04-30 10:38:44
【问题描述】:
class MyClass
{
public:
void setVar(const char *str);
private:
std::string mStr;
int maxLength; //we only store string up to this length
};
当外部代码很可能为空字符串传递 NULL(并且无法更改)时,实现 setVar 的最佳方法是什么?我目前正在做一些类似的事情:
void MyClass::setVar(const char *str)
{
mStr.assign(str ? str : "",maxLength);
}
但这似乎有点乱。想法?
【问题讨论】:
-
我想你会在其他地方读取
string的值。这段代码需要char const*还是string? -
你觉得哪里乱了?
-
@Thomas,你为什么这么问?我认为无论哪种方式,我的新类最好使用 STL...实际上我是从存储 C 字符串转换它,因为它使复制对象更容易出错...添加了一个新字段,默认情况下不复制!