特に、char のメモリを再割り当てする必要があるかどうかをコードはどのようにチェックしますか? または、ユーザーが入力した文字数は? C文字列の値を文字列クラスの実装に割り当てたい場合、おそらく次のようにします
String& operator=(String& to, const char *from)
{
if((strlen(from) + 1) > to.size) {
if (to.str != NULL) {
delete[] to.str;
to.str = NULL;
}
to.size = strlen(from) + 1;
to.str = new char[to.size];
}
strcpy(to.str, from);
return to;
}
簡単です。しかし、 std::string の operator>> は本当に気になります。