• Авторизация


Список инициализации конструктора 24-06-2009 16:11 к комментариям - к полной версии - понравилось!


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

Пример:

class A
{
private:
 int x;
public:
 A() : x(10) {}
 void Show()
 {
 cout<<x<<endl;
 }
};
void main()
{
 A a;
 a.Show();

Так же это помогает, когда нужно создать массив объектов

A b[3];
 for (int i=0;i<3;i++)
 b[i].Show();
}

Все свойства x массива объектов b инициализируются по умолчанию соответствующими значениями.
Несколько свойств по умолчанию
class A
{
private:
 int x,y;
public:
 A() : x(10),y(25) {}; 
 void Show()
 {
 cout<<x+y<<endl;
 }
};
void main()
{
 A a;
 a.Show();
}

Инициализацию свойств по умолчанию рекомендуется организовывать спомощью списка инициализации. В литературе пишут, что довольно сложно объяснить причины этого, суть в том, что при списке инициализации, свойства инициализируются еще до выполнения метода конструктора. К тому же – это единственный способ задать значения по умолчанию для константных свойств класса.

Пример:
class A
{
private:
 const int x;
public:
 A()
 {
 x=10;
 }
}
Здесь ошибка. А вот правильный вариант:
class A
{
private:
 const int x;
public:
 A() : x(10){} 
 void Show()
 {
 cout<<x<<endl;
 }
};
void main()
{
 A a;
 a.Show();
}

 

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Список инициализации конструктора | TheLenka - Дневник Рыжей Девчонки | Лента друзей TheLenka / Полная версия Добавить в друзья Страницы: раньше»