3.2.1 Классы
Класс используется для создания объектов. Основная форма имеет вид:
class имя класса
{
закрытые функции и переменные
public:
открытые функции, функции-члены и переменные
}
список объектов;//не является обязательным
Закрытые функции и переменные - члены(members) доступны только для других членов этого класса.
Открытые функции и переменные доступны для любой части программы, в которой находится класс.
Функции, объявленные внутри описания класса называются функциями членами (member functions).
Для определения функций-членов используется форма:
тип имя класса:: имя функции-члена (параметры)
{
тело функции
}
Два двоеточия после имени класса называются операцией расширения области видимости (scope resolution operator).
Определение класса только определяет тип объектов, а сами объекты не задает), мять не выделяется). Для создания объектов имя класса используется как спецификатор типа данных.
После создания объекта к открытым членам класса можно обращаться, используя операцию точка.
Пример.
#include <iostream.h>
class class1 {//объвлен сласс class1
int a; //доступна для функций членов class1
public:
int kwadrat(int b);//функция член класса class1
};
int class1::kwadrat(int b) //определение функции kwadrat()
{
a=b*b;
return a;
}
main()
{
class1 c; //создается объект с типа class1
cout<<"\n"<<c.kwadrat(3)<<"\n";//вычисление и вывод квадрата трех
return 0;
}
3.2.2 Перегрузка функций
Две или более функции, имеющие одно и тоже имя называются перегружеными. Обычно функции отличаются количеством и типом аргументов. Транслятор автоматически на основании количества или типов аргументов выберет правильный вариант.
Пример.
#include <iostream.h>
void k(int a);//прототип первой функции
void k(int a, float b); //прототип второй функции
void k(int a) //описание первой функции
{
cout << a <<"\n";
}
void k(int a, float b) //описание второй функции
{
cout <<a<<"\n"<< b <<"\n";
}
main()
{
k(4);//вызов первой функции
k(5, 10.2);//вызов второй функции
return 0;
}
3.2.3 Конструкторы
Для автоматической инициализации создаваемых объектов в С++ используется функция - конструктор (constructor function), которая включается в описание класса.
Функция конструктор имеет тоже имя, что и класс и не возвращает ни какого значения.
Пример:
#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.
3.2.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";
}
ain()
class1 pr;//Создание объекта pr
pr.kwadrat(); //Вызов функции kwadrat
return 0;
}
Деструктор вызывается при удалении объекта или выхода из программы.
3.2.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;
}
В программе рассмотрено важное свойство объектов. Они могут создаваться по мере необходимости.
... . Имеет ли право на существование эта биологизаторская интерпретация экологии? Видимо, да. Она широко представлена, и с этим следует считаться. Но она не может служить концептуальной основой комплексного непрерывного экологического образования. В структуре научного знания при таком подходе не остаётся места для географической и социальной экологии, экологии человека, а сама биология превращается ...
... хотя бы стены, чтобы нас не унижали в собственном доме, до конца не растащили наше имущество, нам нужна, обладающая высоким моральным и воинским духом достойно обеспеченная армия. Однако, значение российской армии и в том, что она представляет собой, пожалуй, единственный институт в современной виртуальной России, лишенный симулякров, поскольку ней, по крайней мере, погибают реально - в бою. ...
... важные функции управления предприятием, такие как: определение задач; планирование ресурсов; оценка деятельности и мотивация персонала на основе оценки; контроль исполнения. В целом, бюджетирование решает тактические вопросы и, по существу, для стратегического управления не предназначено. Связь бюджетирования со стратегией Практика стратегического планирования западных компаний ...
... . Для этого достаточно измерить его на карте и знать масштаб карты. Компас. Научиться пользоваться компасом нетрудно. Но компас, как правило, наилучшим помощником в ориентировании становится вместе с картой. В спортивном ориентировании пользуются специальными жидкостными компасами. Они позволяют быстро и просто взять с карты нужное направление и двигаться по местности по выбранному азимуту. ...
0 комментариев