Что происходит в верхней части этой функции - PullRequest
0 голосов
/ 15 декабря 2009

В настоящее время я смотрю на пример функции, который я не могу понять, используя MFC в Visual C ++. Функция выглядит следующим образом

CMFC_OSG_MDIView::CMFC_OSG_MDIView() :mOSG(0L)
{
}

Здесь я все понимаю, кроме фрагмента mOSG (0L). mOSG был объявлен в классе MFC_OSG _MDIView следующим образом:

cOSG* mOSG;

Ответы [ 3 ]

4 голосов
/ 15 декабря 2009
CMFC_OSG_MDIView::CMFC_OSG_MDIView() :mOSG(0L)
{
}

Выше приведен конструктор для класса с именем CMFC_OSG_MDIView. :mOSG(0L) называется initializer list, который выполняется при создании объекта. Список инициализации вызывается перед телом конструктора, и это правильное место для инициализации переменных-членов.

1 голос
/ 15 декабря 2009

0L указывает длинное целое число со значением ноль. Таким образом, это инициализирует члена класса mOSG с 0.

1 голос
/ 15 декабря 2009

Это инициализатор - mOSG инициализируется с 0L. Когда элемент управления входит в тело конструктора, mOSG уже инициализирован.

См. этот вопрос , чтобы обсудить, почему использовать инициализаторы вместо присваивания внутри конструктора.

...