[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 11835] == 演算子 ( 議事録の宿題)
高橋(智)です。
先日の読書会の議事録の宿題にもありました、
> ★リスト19-2 assert("Bob" == e->GetName())の動きは? C++のstringの==演算子の
> オーバライドをヘッダ でどう書いているか
の部分ですが、比較の部分がどうなっているのか、C++Builder6 & STLport でそれぞれ
のケースを見てみました。
それぞれ比較の == の部分のコードはその下のコメント行に書きました。
-------------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
string std_str("test");
char* psz_str = "test";
bool case1 = (std_str==std_str);
/*
call _STL::operator ==(const _STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> > &, const _STL::basic_string<char, _STL::char_traits<ch
ar>, _STL::allocator<char> > &)
*/
bool case2 = (std_str==psz_str);
/*
call _STL::operator ==(const _STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> > &, const char *)
*/
bool case3 = (psz_str==std_str);
/*
call _STL::operator ==(const char *, const _STL::basic_string<char, _STL::cha
r_traits<char>, _STL::allocator<char> > &)
*/
bool case4 = (psz_str==psz_str);
/*
mov ecx, [ebp-0x50]
cmp ecx, [ebp-0x50]
*/
}
-------------------------------------------------------------------------------
--
高橋智宏