いくつかの情報源を研究することで、私はよくこれを見に来ました:(実際の情報源の一部)
void CUserMng::AddText( LPCTSTR szMessage )
{
map<u_long,CUser*>::iterator it;
for( it = m_users.begin(); it != m_users.end(); ++it )
{
CUser *pUser = it->second;
if( !IsValidObj( pUser ) )
continue;
(pUser)->AddTextNotice( szMessage );
}
}
かっこはどういうpUser
意味ですか?
私は思いついた:
struct bar
{
int value;
}
void foo()
{
bar *ptr = NULL; //new bar;
(ptr)->value = 1;
//delete bar
}
私の推測では、括弧 " (ptr)
"を使用した呼び出しは、ポインターが無効な場合に呼び出しが行われないようにするためのものでしたが、そうではないようです。私がよく見る別の例は次のとおりです。
classB* ptr = new classB;
((classA*)ptr)->callfunctionfromclassA;