研究一些资料我经常来看这个:(部分真实资料)
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;