Программирование на языке высокого уровня. Марапулец Ю.В. - 90 стр.

UptoLike

Составители: 

Конструкторы для элементов массивов вызываются в порядке увеличения индекса.
Остановимся несколько подробнее на инициализации объектов класса. Если члены клас-
са имеют тип доступа к элементам 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