I'm currently looking at a function example that I can't seem to figure out using MFC in Visual C++. The function is as follows
CMFC_OSG_MDIView::CMFC_OSG_MDIView() :mOSG(0L)
{
}
I understand everything here except the mOSG(0L) snippet. mOSG was declared in the MFC_OSG _MDIView class as follows:
cOSG* mOSG;
CMFC_OSG_MDIView::CMFC_OSG_MDIView() :mOSG(0L)
{
}
The above is a constructor, for a class called CMFC_OSG_MDIView
. :mOSG(0L)
is called initializer list
, which is executed when an object is created. The init-list gets called before the body of the constructor, and it is the correct place to initialize the member variables.
That's an initializer - mOSG
is initialized with 0L. When the control enters the constructor body mOSG
is already initialized.
See this question for discussion of why use initializers instead of assignment inside of the constructor.
0L
specifies a long integer with value zero. So this initializes the class member mOSG
with 0.