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

Оголошення базового класу

Читайте также:
  1. II. Оголошення теми й мети уроку
  2. А Проголошення ЗУНР 9ноября 1918
  3. АНКЕТА для учнів 11 класу
  4. Блоки дополнительных вопросов базового и профильного уровня по каждому изучаемому писателю.
  5. БУДОВА ПШМ 322 КЛАСУ
  6. БУДОВА ПШМ 323 КЛАСУ
  7. БУДОВА ПШМ 378 КЛАСУ
  8. Бухгалтерські рахунки якого класу кореспондують тільки між собою, а їх залишки не враховують під час складання фінансової звітності банку?
  9. Виховна система класу Сутність і структура виховної системи
  10. Внутрішня і зовнішня політика Директорії. Проголошення Акту злуки УНР і ЗУНР
  11. Г Проголошення І Універсалу Центральної Ради. 10июня 1917
  12. Діагностика класу

C++Builder дає вам можливість оголосити базовий клас, який інкапсулює імена своїх властивостей, даних, методів і подій. Окрім здатності виконувати своє безпосереднє завдання об'єктні методи отримують певні привілеї доступу до значень властивостей і даних класу.

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

class className

private:

<приватні члени даних> <приватні конструктори> <приватні методи>

protected:

<захищені члени даних> <захищені конструктори> <захищені методи>

public:

<загальнодоступні властивості> <загальнодоступні члени даних> <загальнодоступні конструктори> <загальнодоступна деструкція> <загальнодоступні методи>

Лістинг 3.1. Оголошення базового класу.

Таким чином, оголошення базового класу на C++ надає наступні права доступу і відповідні зони видимості:

• Приватні private імена мають найбільш обмежений доступ, дозволений тільки методам даного класу. Доступ похідних класів до приватних методів базових класів заборонений.

• Захищені protected імена мають доступ, дозволений методам даного і похідних від нього класів.

• Загальнодоступні public імена мають необмежений доступ, дозволений методам всіх класів і їх об'єктів.

Наступні правила застосовуються при утворенні різних секцій оголошення класу:

1. Секції можуть з'являтися у будь-якому порядку, а їх назви можуть зустрічатися повторно.

2. Якщо секція не названа, компілятор вважає подальші оголошення імен класу приватними. Тут виявляється відмінність оголошень класу і структури - остання розглядається за умовчанням як загальнодоступна.

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

4. Використовуйте методи для вибірки, перевірки і установки значень властивостей і членів даних.

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

6. Методи (так само як конструктори і деструкції), які містять більше ніж одну інструкцію C++, рекомендується оголошувати поза класом.

Лістинг 3.2 представляє спробу наповнити оголошення базового класу деяким конкретним змістом. Відзначимо характерне для компонентних класів C++Builder оголошення властивості Count в захищеній секції, а методу SetCount, що реалізовує запис в член даних FCount, - в приватній секції.

class TPoint { private:

int FCount; // Приватний член даних void _fastcall SetCount(int Value);

protected:

 

_property int Count = // Захищена властивість

{ read= FCount, write=SetCount };

 

double x; // Захищений член даних

double у; // Захищений член даних public:

TPoint(double xVal double yVal); // Конструктор |

double getX(); |

 

double getY();

Лістинг 3.2. Оголошення базового компонента TPoint.

Оголошення і визначення методів зберігаються в різних файлах (з розширеннями.h і.срр, відповідно). Лістинг 3.3 показує, що коли методи визначаються поза класом, їх імена слід кваліфікувати. Синтаксис такої кваліфікації методу, що визначає його зону видимості, має наступний вигляд:

<ім'я класу>::<ім'я методу>

TPoint::TPoint (double xVal double yVal)

(// Тіло конструктора

void _fastcall TPoint::SetCount(int Value)

{

l

if (Value i= FCount) // Нове значення члена даних? {

FCount = Value; // Запис нового значення Update(); // Виклик методу Update } } double TPoint::getX()

// Тіло методу getX, кваліфікованого в класі ^TPoint

}

Лістинг 3.3. Визначення конструктора і методів поза класом.

Після того, як ви оголосили клас, його ім'я можна використовувати як ідентифікатор типу при оголошенні об'єкту цього класу (наприклад,

TPoint* MyPoint;).


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)