
- •Лекция №1 «Современные средства разработки по. Терминология. Основные понятия.»
- •Проектирование приложения.
- •Реализация программного кода приложения.
- •Тестирование приложения.
- •Лекция 2. История развития ооп и сред rad
- •Преимущества ооп
- •Среды разработки, использующие принципы rad
- •Лекция №3 ооп. Понятия объекта, свойства, метода, события.
- •Лекция №4 Классы
- •4.1 Объявление класса
- •4.2. Перегрузка функций.
- •4.3. Конструкторы.
- •4.4. Деструкторы.
- •4.5. Конструкторы с параметрами.
- •4.6. Указатели на объекты.
- •Лекция №5 Данные-элементы, статические данные, константные данные
- •6. Функции-элементы, дружественные функции, константные функции
- •Inline void SetA(int); // функция записи
- •Встраиваемые функции inline
- •3.3. Введение в наследование.
- •Виртуальные функции.
- •Производные классы: множественное наследование
4.3. Конструкторы.
Функция конструктора (constructor function) имеет тоже имя, что и класс и не возвращает ни какого значения. Нельзя указывать даже void , т.к. конструктор никогда не возвращает значение.
Конструктор автоматически вызывается при создании объекта (создании экземпляра класса), т.е не нужно специально вызывать конструктор - это сделает компилятор.
В основном используется конструктор для автоматической инициализации создаваемых объектов в С++ и включается в описание класса.
#include <iostream.h>
// Объявление класса class1
class class1
{
int a;
public:
class1(); // Конструктор
void kwadrat();
};
// Инициализация а конструктором при создании объекта pr
class1::class1()
{
a=100;
}
//Функция возведения в квадрат и печати
void class1::kwadrat()
{
cout << a*a;
}
main()
{
class1 pr;//Создание объекта pr
pr.kwadrat(); //Вызов функции kwadrat
return 0;
}
Как видно из примера конструктор вызывается при создании объекта pr.
4.4. Деструкторы.
Функция деструктор (destructor) вызывается при удалении объекта для освобождения ресурсов (памяти и т.д.). Она также включается в объявление класса. Перед описанием деструктора ставится значок ~.
Пример.
#include <iostream.h>
// Объявление класса class1
class class1
{
int a;
public:
class1(); // Конструктор
~class1(); //Деструктор
void kwadrat();
};
// Инициализация а конструктором при создании объекта pr
class1::class1()
{
a=100;
}
//Освобождение ресурсов деструктором
class1::~class1()
{
cout<<"Освобождение\n";
}
//Функция возведения в квадрат и печати
void class1::kwadrat()
{
cout << a*a<<"\n";
}
main()
{
class1 pr;//Создание объекта pr
pr.kwadrat(); //Вызов функции kwadrat
return 0;
}
Деструктор вызывается при удалении объекта или выхода из программы. Можно так же использовать для уничтожения объектов операции new и delete.
4.5. Конструкторы с параметрами.
Конструктору можно передать параметры. Для этого нужно добавить необходимые параметры в объявление и определение конструктора. Затем при объявлении объекта параметры задаются в качестве аргумента.
Пример:
#include <iostream.h>
class myclass
{
int a;
public:
myclass(int x); // конструктор
void show();
};
myclass::myclass(int x)
{
cout << "В конструкторе\n";
a = x;
}
void myclass::show()
{
cout << a << "\n";
}
main()
{
myclass ob(4);
ob.show();
return 0;
}
Конструктор myclass имеет один параметр. Значение, передаваемое в myclass() используется для инициализации а. Аргумент 4 передается в ob(4) в качестве аргумента. Деструктор в отличие от конструктора параметров не имеет.
В данном примере конструктору мы передавали константы, но так же можно передавать переменные:
Пример:
#include <iostream.h>
class myclass {
int i, j;
public:
myclass(int a, int b);
void show();
};
myclass::myclass(int a, int b)
{
i = a;
j = b;
}
void myclass::show()
{
cout << i << ' ' << j << "\n";
}
main()
{
int x, y;
cout << "Введите два целых: ";
cin >> x >> y;
// использование переменных для создания ob
myclass ob(x, y);
ob.show();
return 0;
}