есть один для
ге C ++ Primer он содержит код для символьных массивов в стиле C и показывает, как перегрузить=
оператор в статье15.3 Оператор =.
String& String::operator=( const char *sobj )
{
// sobj is the null pointer,
if ( ! sobj ) {
_size = 0;
delete[] _string;
_string = 0;
}
else {
_size = strlen( sobj );
delete[] _string;
_string = new char[ _size + 1 ];
strcpy( _string, sobj );
}
return *this;
}
Теперь я хотел бы знать, почему нужно возвращать ссылкуString &
когда этот код ниже делает ту же работу, без каких-либо проблем:
void String::operator=( const char *sobj )
{
// sobj is the null pointer,
if ( ! sobj ) {
_size = 0;
delete[] _string;
_string = 0;
}
else {
_size = strlen( sobj );
delete[] _string;
_string = new char[ _size + 1 ];
strcpy( _string, sobj );
}
}
пожалуйста, помогите.