Составители:
Рубрика:
Конструкторы для элементов массивов вызываются в порядке увеличения индекса.
Остановимся несколько подробнее на инициализации объектов класса. Если члены клас-
са имеют тип доступа к элементам public и нет конструктора и базовых классов - то объ-
екты такого класса могут инициализироваться с помощью списка начальных значений.
Типичный пример - структуры.
Другие объекты инициализируются с помощью задания параметров для конструк-
торов. Рассмотрим следующий пример. Тела конструкторов опущены для краткости.
class X
{
int i;
public:
Х();
X(int x);
X(const X&);
};
void main ()
{
X one; // конструктор по умолчанию
X two(l); //конструктор X
::X(int)
X three=l; // вызов X
::X(int)
X four=one; // использование X
::X(const X&)
X five(two); // вызов X
::X(const X&)
}
Конструктор может присвоить начальные значения членам класса.
class X
{
int a, b;
public:
X(int i, int j)
{
a=i;
b=j;
}
};
В этом случае запись Х obj(1,2) вызывает присвоение a значения 1, b - значения 2.
Синтаксис языка С++ включает еще один вид конструктора - конструктор копиро-
вания, получающий в качестве единственного параметра указатель на объект этого же
класса:
T
::T(const T&) { ... /* Тело конструктора */}
где T - имя класса.
Этот конструктор вызывается в тех случаях, когда новый объект создается путем копи-
рования существующего:
• при описании нового объекта с инициализацией другим объектом;
• при передаче объекта в функцию по значению;
• при возврате объекта из функции.
90
Конструкторы для элементов массивов вызываются в порядке увеличения индекса.
Остановимся несколько подробнее на инициализации объектов класса. Если члены клас-
са имеют тип доступа к элементам public и нет конструктора и базовых классов - то объ-
екты такого класса могут инициализироваться с помощью списка начальных значений.
Типичный пример - структуры.
Другие объекты инициализируются с помощью задания параметров для конструк-
торов. Рассмотрим следующий пример. Тела конструкторов опущены для краткости.
class X
{
int i;
public:
Х();
X(int x);
X(const X&);
};
void main ()
{
X one; // конструктор по умолчанию
X two(l); //конструктор X::X(int)
X three=l; // вызов X::X(int)
X four=one; // использование X::X(const X&)
X five(two); // вызов X::X(const X&)
}
Конструктор может присвоить начальные значения членам класса.
class X
{
int a, b;
public:
X(int i, int j)
{
a=i;
b=j;
}
};
В этом случае запись Х obj(1,2) вызывает присвоение a значения 1, b - значения 2.
Синтаксис языка С++ включает еще один вид конструктора - конструктор копиро-
вания, получающий в качестве единственного параметра указатель на объект этого же
класса:
T::T(const T&) { ... /* Тело конструктора */}
где T - имя класса.
Этот конструктор вызывается в тех случаях, когда новый объект создается путем копи-
рования существующего:
• при описании нового объекта с инициализацией другим объектом;
• при передаче объекта в функцию по значению;
• при возврате объекта из функции.
90
Страницы
- « первая
- ‹ предыдущая
- …
- 88
- 89
- 90
- 91
- 92
- …
- следующая ›
- последняя »
