Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > после прототипа конструктора и дет : varName, что?


Автор: greengarlic 10.8.2010, 12:39
Есть некий конструктор, особо не важно что и как делает класс, просто взгляните вот на эту часть кода:

Код

TreeViewExample::TreeViewExample(WStandardItemModel *model)
  : model_(model)
{
   ...
}



Подскажите, зачем писать model_(model) ? Я не пойму что это такое и почему так часто я это встречаю.
Спасибо!

Автор: mes 10.8.2010, 12:43
model_ член класса, который инициализируется аргументом model.

Автор: greengarlic 10.8.2010, 12:50
то есть можно сказать что можно было бы записать и так:

Код

TreeViewExample::TreeViewExample(WStandardItemModel *model)
{
   model_(model);
  // or
  model_ = model;
   ...
}



?

Автор: SenkraD 10.8.2010, 12:55
greengarlic,  только  model_ = model;, но и то не всегда - проинитить ссылки и константы, а также вызвать конструкторы базовых класов с нужными агрументами можно только в списке инициализации

Автор: greengarlic 10.8.2010, 12:59
mes, SenkraD Спасибо, теперь понятно.

Автор: mes 10.8.2010, 13:00
читать в книжке про  список инициализации в конструкторе,
а также чем инициализация отличается от присваивания..
smile

Автор: greengarlic 10.8.2010, 13:49
Цитата(mes @  10.8.2010,  13:00 Найти цитируемый пост)
читать в книжке про  список инициализации в конструкторе,
а также чем инициализация отличается от присваивания..
 

взято на заметку  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)