Justin
Justin

Reputation: 1

What is going on at the top of this function

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;

Upvotes: 0

Views: 293

Answers (3)

codencandy
codencandy

Reputation: 1721

0L specifies a long integer with value zero. So this initializes the class member mOSG with 0.

Upvotes: 1

Khaled Alshaya
Khaled Alshaya

Reputation: 96889

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.

Upvotes: 4

sharptooth
sharptooth

Reputation: 170509

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.

Upvotes: 1

Related Questions