<>有个地方没看明白,请指点
ttwy 2002-10-25 10:34:00 110页定义了两个重载的等于操作符,分别是:
inline bool String :: operator == ( const String &rhs )
{
if ( _size != rhs._size )
return false;
return strcmp ( _string, rhs._string ) ? false : true;
}
inline bool String :: operator == ( const char *s )
{
return strcmp ( _string, s );
}
我不明白第一个为什么加上if条件判断,是出于效率考虑吗?
那第二个为什么不是这样写:
inline bool String :: operator == ( const char *s )
{
if ( _size != strlen ( s ) )
return false;
return strcmp ( _string, s );
}
或者第一个去掉if条件判断,别的书上就没有。到底怎么回事呢???