Файл: Контрольная работа по ООП.pdf

ВУЗ: Не указан

Категория: Методичка

Дисциплина: Программирование

Добавлен: 28.11.2018

Просмотров: 1302

Скачиваний: 20

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Конструктор с параметрами создает объект с заранее определенным 

набором свойств: 

Book::Book(std::string Auth, std:: Ttl, int 

y) 


Author = Auth; 
Title = Ttl; 
Year = y; 

Кроме конструктора, в составе класса есть еще один служебный метод 

— 

деструктор. 

Деструктор выполняет разрушение объекта, он не имеет 

параметров, находится в разделе public, не имеет типа возвращаемого 

значения, а имя отличается от имени конструктора одним символом: знаком 

~ (тильда) в начале. 

Book::~Book() 

// Деструктор по умолчанию 

Явный вызов деструктора вставлять в программу не требуется — он 

вызывается автоматически. Если для данных класса не выделяется 

динамическая память, деструктор можно не включать в класс — он будет 

добавлен автоматически компилятором. 

В описании конструктора и любого другого метода класса (в 

реализации) используется оператор разрешения области видимости ::. Этот 

оператор позволяет включить идентификаторы в заданное пространство имен 
namespace

. Для функций-членов класса пространством имен будет класс. 

Если не использовать оператор ::, получится глобальная функция, не 

связанная с классом. 

Примеры создания объектов 

Book B1

; // Создание объекта с помощью конструктора по 

//

умолчанию 

Book B2(“Pushkin”,”Evgeny Onegin”,2003);

 

//

Создание объекта с помощью

 

конструктора с параметрами

 

Book B3[3];

 

// Создание массива объектов с помощью 

//

конструктора  по умолчанию 

Для доступа к свойствам и методам в функциях-членах данного класса 

используется только имя свойства или метода 

Book::Book(std::string Auth, std::Ttl, int y) 

Author = Auth; 
. . . 

Также возможно обратиться к члену того же класса с помощью 

указателя на текущий объект this 

Book::Book(std::string Auth, std::Ttl, int y) 


background image


this->Author = Auth; 
. . . 

Для доступа сторонних объектов к свойствам и методам объекта какого-

либо класса используется имя объекта и операция точка (.) 

P1.SetAuthor(”Gogol”); 

Сторонние объекты также могут обращаться к свойствам и методам 

какого-либо объекта с помощью указателя на объект и операции стрелка (→): 

Book* ptr = &P1

; // инициализация указателя на объект

 

ptr->GetAuthor

(); // обращение к методу объекта через 

//

указатель 

Пример простейшей реализации методов класса Book: 

void Book::SetAuthor(std::string Auth) 

Author = Auth; 

 

std::string Book::GetAuthor() 

return Author; 

 

 

Работа с переменными типа string.  

В языке С строки задаются как массив символов с нуль-символом в 

конце массива (chat c[10]) и имеются функции : 

strcpy(c1,c2)

 – 

копирование строк; 

strcat(c1,c2)

 – 

объединение строк;

 

strcmp(c1,c2)

 – 

сравнение строк; 

и другие. 

Используя эти функции, необходимо проверять, достаточно ли выделено 

места для строки, куда будет записана результирующая строка. 

 

В языке С++ имеется класс string, он освобождает программиста от 

заботы о выделении памяти. В этом классе определены операции 

присваивания (=), конкатенации (+), сравнения (= =, <, >,....) и другие. Это 

позволяет записывать действия со строками как с числовыми переменными. 

string s1, s2,s3; 

//

конструктор создаёт три объекта string: 

s1,s2,s3 

s1="new"; 

//s1 

присваивается значение new 

s2=s1;    

//

строка s1 копируется в s2 

s3=s1+s2; 

// 

строки s1 и s2 объединяются и записываются в строку 

s3

 


background image

if (s1<s2) cout<<s1; 

//

при сравнении строк меньшей считается 

та, у которой код первого несовпадающего символа меньше. 

Для использования класса необходимо подключить заголовочный файл 

<string

 

Более подробные сведения о классах вы найдёте в лекциях и книгах, 

указанных в списке литературы. 

 

Вопросы к контрольной работе. 

1. 

Что такое класс в объектно-ориентированном 

программировании? 

2. 

Какую структуру имеет модуль в С++? 

3. 

Какими средствами осуществляется консольный ввод данных в 

языке Си, С++? 

4. 

Какие свойства (принципы) объектно-ориентированного 

программирования вы знаете? 

5. 

Сконструируйте простейший класс с конструктором по 

умолчанию и конструктором с параметрами. Покажите, как с 

помощью этих конструкторов можно создать объекты.