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