MFC中为什么有的函数调用时要加上两个冒号

2025-05-12 11:33:42
推荐回答(3个)
回答1:

::是域区分符 表示它是属于哪个域
类名::函数名 表示调用该类的成员函数。
::函数名 表示调用来全局命名空间的函数,也就是系统提供的函数。
变量也是一样:
类名::变量名 表示使用该类的成员变量。
::变量名 表示调用来全局命名空间的变量,也就是全局变量。

回答2:

CSplitterWnd m_wndSplitter;
//重载虚函数OnCreateClient() 在该函数中创建视图
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if(!m_wndSplitter.CreateStatic(this,1,2)) //1行2列
return FALSE;
if(!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(150,0),pContext))
return FALSE;
if(!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CRightView),CSize(150,0),pContext))
return FALSE;
CRect rect;
GetWindowRect( &rect );
m_wndSplitter.SetColumnInfo(0, rect.Width()/3, 10);
m_wndSplitter.SetColumnInfo(1, rect.Width()*2/3, 10);
m_wndSplitter.RecalcLayout();
return TRUE;
}

//
CLeftView* CMainFrame::GetLeftView()
{
return (CLeftView*)m_wndSplitter.GetPane(0,0);
}

//
CRightView* CMainFrame::GetRightView()
{
return (CRightView*)m_wndSplitter.GetPane(0,1);
}

回答3:

那是指类成员