Объектно-ориентированное программирование на C++. Андрианова А.А - 71 стр.

UptoLike

Объектно-ориентированное программирование на С++
При создании объекта среди конструкторов класса осуществляется
вызов того конструктора, у которого список параметров соответсвует
списку аргументов.
Объект класса можно создать с помощью операции new. Тогда
конструктор будет вызываться явно.
Student* pStd = new Student("Иванов Иван Иванович",
21, 5, 1989, 123, 0.0);
Конструктор не может быть вызван объектами, поскольку он
используется для их создания.
Если в определении класса отсутствуют конструкторы, компилятор
предоставляет конструктор, заданный по умолчанию. Для класса
Student он будет выглядеть следующим образом:
Student::Student()
{}
Этот конструктор выделяет память для хранения объекта без его
инициализации. Он не имеет параметров, поэтому используется, когда
явные значения для инициализации объекта отсутствуют. Если
существует хотя бы один конструктор в определении класса, то
конструктор по умолчанию не генерируется и его можно определить
явно. Он может быть пустым (совпадающим с тем, который
предоставляется компилятором), а может содержать операторы,
выполняющие вспомогательные действия. Например, для класса Group
конструктор по умолчанию должен обнулять количество студентов в
группе:
Group :: Group ()
{
count = 0;
}
Обязательно наличие конструктора по умолчанию в классе в случае
использования массивов объектов этого класса. В нашем примере в
классе Group содержится массив объектов-студентов. При создании
объекта класса Group автоматически вызывается конструктор по
умолчанию для каждого элемента массива students. Поскольку в
классе Student метод инициализации был заменен конструктором с
71
                          Объектно-ориентированное программирование на С++
    При создании объекта среди конструкторов класса осуществляется
вызов того конструктора, у которого список параметров соответсвует
списку аргументов.
     Объект класса можно создать с помощью операции new. Тогда
конструктор будет вызываться явно.

    Student* pStd = new Student("Иванов Иван Иванович",
                                      21, 5, 1989, 123, 0.0);

    Конструктор не может быть вызван объектами, поскольку он
используется для их создания.
    Если в определении класса отсутствуют конструкторы, компилятор
предоставляет конструктор, заданный по умолчанию. Для класса
Student он будет выглядеть следующим образом:

    Student::Student()
    {}

    Этот конструктор выделяет память для хранения объекта без его
инициализации. Он не имеет параметров, поэтому используется, когда
явные значения для инициализации объекта отсутствуют. Если
существует хотя бы один конструктор в определении класса, то
конструктор по умолчанию не генерируется и его можно определить
явно. Он может быть пустым (совпадающим с тем, который
предоставляется компилятором), а может содержать операторы,
выполняющие вспомогательные действия. Например, для класса Group
конструктор по умолчанию должен обнулять количество студентов в
группе:

    Group :: Group ()
    {
         count = 0;
    }

    Обязательно наличие конструктора по умолчанию в классе в случае
использования массивов объектов этого класса. В нашем примере в
классе Group содержится массив объектов-студентов. При создании
объекта класса Group автоматически вызывается конструктор по
умолчанию для каждого элемента массива students. Поскольку в
классе Student метод инициализации был заменен конструктором с

                                                                        71