Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Листинг 14.2. Пример реализации класса




// Воок.срр - реализация класса СВооk

#include "Book.h"

#include <string>

// установить автора

void СВоок :: setAuthor ( const char* author ) {

strncpy_s < m_author, 50, author, 49 ) ;

if ( strlen ( author ) > 49 ) m_author [ 49 ] = ‘\0' ;

}

// установить название

void СВоок :: setTitle ( const char* title ) {

delete [ ] m_pTitle ;

m_pTitle = new char [strlen ( title )+ 1] ;

strcpy_s ( m_pTitle, strlen ( title ) + 1, title ) ;

}

// установить год издания

void СВоок :: setYear ( const int year )

{ m_уеаr = year ; }

// вернуть автора

char* СВоок :: getAuthor ( void )

{

Return m_author ;

}

// вернуть название

char* СВоок :: getTitle ( void )

{

Return m_pTitle ;

}

// вернуть год издания

int СВоок :: getYear ( void )

{

Return m_year ;

}

 

Методи, показані в лістингу 14.2, не потребують особливих коментарів. Слід звернути увагу на визначення методів для встановлення значення автора і значення назви книги.

У методі setAuthor () в змінну m_author можна скопіювати тільки 49 байтів з параметра author. У разі перевищення цього значення залишок рядка author втрачається, і в останній байт масиву m_author записується нульовий байт.

У методі setTitle () дане m_pTitle є покажчиком, тому спочатку необхідно звільнити пам'ять, займану існуючим значенням на звання книги, виділити достатній для розміщення нової назви книги блок пам'яті і тільки потім копіювати значення параметра title. При виділенні пам'яті до довжини рядка title додається 1 байт для запису нульового байта.

 

Оголошення об'єкта класу

 

Оголошення об'єкта класу (object definition) не варто плутати з оголошенням класу. Важливо розуміти, що клас не містить ніяких значень даних, а лише описує загальну структуру і поведінку об'єктів, будучи як би трафаретом для їх створення.

Опис об'єкту задає його тип (ім'я класу) і, можливо, необхідні для ініціалізації членів-даних значення. При оголошенні об'єкта компілятор отримує вказівку на створення змінної класу на підставі заданого типу.

Коли об'єкт оголошується, то згідно з описом класу для об'єкта відбувається виділення оперативної пам'яті, а також при вказівці значень даних здійснюється ініціалізація членів-даних зазначеними значеннями. Всю цю роботу робить спеціальний метод класу, званий конструктором. Конструктори розглядаються в книзі в окремому розділі з однойменною назвою.

Основними форматами оголошення об'єкта класу є наступні:

Имя_класса имя_объекта ;

Имя_класса имя_объекта ( список параметров ) ; имя_класса имя_объекта ( имя_объекта_копирования ) ;

Листинг 14.3. Пример объявлений объектов класса

CBook book, аВооk [ 100 ] ;

СВоок obj ( "Carrol L.", "Alice in Wonderland", 2002 ) ;


Поделиться:

Дата добавления: 2014-12-03; просмотров: 79; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты