Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Очень хорошо по языку С. С++.DOC
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
931.33 Кб
Скачать

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.