Основное назначение конструкторов - инициализация объектов.
Типичная ошибка программирования. Попытка объявить тип возвращаемого значения для конструктора или возвратить значение из конструктора.
С помощью параметров конструктору можно передать любые данные, необходимые для инициализации объектов класса.
Рассмотрим небольшой пример. Опишем класс Точка (Point), который будет содержать координаты точки в двумерной системе координат, функцию вывода координат точки на экран, функцию смещения точки относительно нового центра координат. Затем, просто создадим одну точку и выведем ее координаты на экран. После пересчитаем координаты точки относительно нового центра и снова выведем данные на экран.
#include <iostream.h>
// описание класса Point
class Point {
int x, y; // координаты точки, по умолчанию имеют
// уровень доступа private
public:
// конструктор присваивает переменным класса x и y начальные
// значения соответственно x0 и y0
Point(int x0, int y0)
{
x = x0;
y = y0;
}
// функция вывода координат точки на экран
void ShowPoint()
{
cout << "\nx = " << x;
cout << "\ny = " << y;
}
// функция пересчета координат точки относительно нового центра
// с координатами в точке (x0, y0)
void OffsetXY(int x0, int y0)
{
x -= x0;
y -= y0;
}
};
void main()
{
Point A(1,3); // создаем точку А (объект типа Point)
// с координатами x = 1, y = 3 (вызывается конструктор Point(1, 3)
A.ShowPoint(); // выводим координаты точки А на экран
A.OffsetXY(2,2); // переносим центр координат в точку (2,2)
A.ShowPoint(); // показываем новые координаты точки А
}
Обратите внимание, при определении объекта значения параметров передаются конструктору с использованием синтаксиса, подобного обычному вызову функции.
Point A(1,3);
Такое определение создает экземпляр A класса Point, вызывая конструктор класса с параметрами (1,3).
- 25. Понятие объекта и класса.
- Определение методов класса
- Переопределение операций
- Подписи методов и необязательные аргументы
- Запись классов
- 26. Скрытие данных и общий интерфейс.
- 27. Конструкторы и деструкторы Инициализация объектов класса: конструкторы
- Основное назначение конструкторов - инициализация объектов.
- Использование конструкторов с аргументами по умолчанию
- Если параметры не передаются конструктору, в определении объекта не нужно включать пустые круглые скобки.
- Использование деструкторов
- Когда вызываются конструкторы и деструкторы.
- 28. Перегрузка классов.
- Перегрузка операторов плюс и минус
- Второй пример
- Операторы, которые Вbl he можете перегрузить
- 29. Дружественные классы.
- 30. Наследование.
- Внутреннее и защищенное наследование
- Виртуальное наследование
- 31. Множественное наследование.
- 32. Полиморфизм.
- 33. Виртуальная функция.
- 34. Передача данных по умолчанию.
- 39. Создание и уничтожение динамических объектов.
- 40. Динамические библиотеки (dll).