class MyClass
{
public:
void setVar(const char *str);
private:
std::string mStr;
int maxLength; //we only store string up to this length
};
什么是执行SETVAR当外部代码很可能在NULL传递一个空字符串(最好的办法,不能改变)?我目前做的有点像:最佳方式来处理存储在STD(可能为null)的char * :: string的
void MyClass::setVar(const char *str)
{
mStr.assign(str ? str : "",maxLength);
}
但它似乎有点混乱。想法?
假设
str
是空终止的:假设你将读取其他地方的字符串值。这段代码是否需要一个“char const *”或“string”? – Thomas 2010-04-30 10:47:54你认为它是如何凌乱? – 2010-04-30 10:49:34
@Thomas,你为什么要问?我认为无论哪种方式,最好是我的新类使用STL ...实际上,我将它从存储C字符串转换而来,因为它使复制对象更加容易出错......添加了新字段,并且默认情况下不会复制! – 2010-04-30 10:57:34