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