ТОП 10:

Void CTime :: Display ( void )



{

char s [32];

sprintf(s,“Data:%02d/%02d%/%04dTime:%02d:%02d\

n”=,month, day, year, hour, minute );

cout << s ;}

 

У даному прикладі клас CTіme - усього лише шаблон, схема, що описує формат членів класу, для роботи з ним необхідно створити об'єкт цього класу ( у прикладі це object ).

При ініціалізації даних-членів класу використовується оператор крапки (object.day) для доступу до членів об'єкта класу.

Варто пам'ятати, що оператор крапки виконують для посилань на відкриття дані члени класу аналогічно посиланням на члени структури.

Якщо таким членом є функція, то С++ викликає функцію, що виконує деякі операції над даними-членами об'єкта класу.

Наприклад, якщо в програмі оголосити інші об'єкти класу CTіmе

CTіme today;

CTіmе tomorrow;

CTіmе yesterday;

то для цих об'єктів функцію Dіsplay можна викликати в такий спосіб: today. Dіsplay (); - відображення значення об'єкта класуtoday;tomorrow. Dіsplay (); - відображення значення об'єкта класу tomorrow;

yesterday. Dіsplay (); - відображення значення об'єкта класу yesterday;

Доступ до даних-членів класу, специфікатори доступу.

В одному класі можуть бути присутнім дані-члени, для деяких з який доступ відкритий, а для деяких - закритий. Для організації доступу використовують специфікатори доступу: prіvate - доступ закритий; publіc-доступ відкритий.

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

 

 

Обмеження доступу до членів класу

Клас

Рисунок 2 -

Члени класу закриті за замовчуванням, але використання специфікатора prіvate бажано.

У класі можуть бути присутнім численні відкриті і закриті секції, що розташовуються в довільному порядку.

Для використання закритих даних-членів існує лише один спосіб - виклик відкритих функцій-членів класу.

Закриті (prіvate) члени класу доступні тільки членам того класу і нікому більше, закриті члени невидимі поза класом.

Специфікатори доступу
Приклад

# include < iostream.h >

#include <stdio.h>

class CTime {

private:

int year;

int month;

int day; закриті дані члени

int hour;

int minute;

public:

void Display(void);

void Get Time(int&m,int&d,int&y,int&h2,int&min);

void Set Time (int m,int d,int y,int h,int min);

}

main ( )

{

CTime obj1; // об’єкт типу CTime

int month, day, year, hous, minute;

obj1. Set Time (7, 14, 2003, 8, 30);

cout <<“obj1==“; obj1.Display();

obj1.Get Time(month, day, year, hous, minute);

obj1. Get Time(month, day, year, ++hous, minute);

cout <<“ Next hous==“; obj1.Display();

return ();}

void CTime::Display(void)Оператор дозволу

{ області видимості

char s [32];

Sprintf(s,“Data:%02d/%02d%/%04d Time:%02d:%02d\n” =,month, day, year, hour, minute);

cout <<s;

}

void CTime::Get Time(int&m,int&d,int&y,int&h2,int& min);

}

m=month; // Повернення даних-членів тому, хто викликав функцію

d=day;

y=year;

h2=hare;

min=minute;

}

void CTime :: Set Time (int m, int d, int y, int h, int min);

{

month = m; // Присвоювання аргументів даним-членам.

day = d;

year = y;

hare = h2;

minute = min;

}

Вбудовані функції-члени

У більшості випадків виклики функцій-членів замість прямого доступу до даних-членів помітно позначаються на швидкодії програми. Звичайно, у наш час необхідна гранична ефективність. Для цього С++ дозволяє повідомляти класи з функціями-членами, що вбудовуються. Функції-члени, що хоч вбудовуються, використовуються так само, як і інші функції, у скомпільованому коді вони не викликаються, а вставляються безпосередньо в скомпільовану програму: (див. рис)

Рисунок 3 -

Наприклад

# include < iostream.h >

# include < time.h >

# include < string.h >

Class CTime

{

private:

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

рublic:

void Display(void){cout<<ctime(&dt);}

void Get Time (int & m, int & d, int & y, int & h2, int & min);

void Set Time (int m, int d, int y, int h, int min);

char * Get STime ( void )

{ char *cp = strdup ( ctime (& dt)); }

return cp;

}

void Change Time(long n minutes){ dt+=(n minutes´60);}

//зсув в часі додає до поточного часу n mіnutes хвилин

}







Последнее изменение этой страницы: 2016-04-18; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.172.233.215 (0.007 с.)