Главная » Статьи » Програмування » C [ Добавить статью ]

RUS Уроки по программированию на языке С (Знакомство с классами.)

Знакомство с классами.

Определение класса и cоздание его объекта.

Класс - это производный структурированный тип, введенный программистом на основе уже существующих типов. Другими словами, механизм классов задает некоторую структурированную совокупность типизированных данных и позволяет определить набор операций над этими данными.

Общий синтаксис класса можно определить с помощью конструкции:

 class имя_класса { список_компонентов };

1. имя_класса - произвольно выбираемый идентификатор

2. список_компонентов - определения и описания типизированных данных и принадлежащих классу функций. Компонентами класса могут быть данные, функции, классы, перечисления, битовые поля и имена типов. Вначале для простоты будем считать, что компоненты класса - это типизированные данные (базовые и производные) и функции.

3. Заключенный в фигурные скобки список компонентов называют телом класса.

4. Телу класса предшествует заголовок. В простейшем случае заголовок класса включает слово class и имя.

5. Определение класса всегда заканчивается точкой с запятой.

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

Вернемся к определению: класс - это тип, введенный программистом. А, так как, каждый тип служит для определения объектов, определим синтаксис создания объекта класса.

 

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

Определение объекта класса предусматривает выделение участка памяти и деление этого участка на фрагменты, соответствующие отдельным элементам объекта, каждый из которых отображает отдельный компонент данных класса.

Способы доступа к компонентам класса.

Существует несколько уровней доступа к компонентам класса. Рассмотрим два основных.

public - члены класса открыты для доступа извне.

private - члены класса закрыты для доступа извне.

Давайте расшифруем.

По умолчанию все переменные и функции, принадлежащие классу, определены как закрытые (private). Это означает, что они могут использоваться только внутри функций-членов самого класса. Для других частей программы, таких как функция main(), доступ к закрытым членам запрещен. Это, кстати, единственное отличие класса от структуры - в структуре все члены по умолчанию - public.

С использованием спецификатора доступа public можно создать открытый член класса, доступный для использования всеми функциями программы (как внутри класса, так и за его пределами).

Синтаксис для доступа к данным конкретного объекта заданного класса (как и в случае структур), таков:

 

 имя_объекта.имя_члена класса;

Пришло время примера...

# include <iostream>
using namespace std;
class Test{
 // так как спецификатор доступа не указан
 // данная переменная будет по умолчанию закрыта
 // для доступа вне класса (private)
 int one;

 // спецификатор доступа public
 // все члены, идущие после него
 // будут открыты для доступа извне
public: 

 // инициализировать переменные в классе 
 // при создании запрещено, поэтому мы определяем
 // метод, реализующий данное действие
 void Initial(int o,int t){
 one=o;
 two=t;
 }

 // метод показывающий переменные класса 
 // на экран
 void Show(){
 cout<<"\n\n"<<one<<"\t"<<two<<"\n\n";
 }
 int two;
};
void main(){

 // создается объект с типом Test
 Test obj;
 // вызывается функция, инициализирующая его свойства
 obj.Initial(2,5);

 // показ на экран
 obj.Show(); // 2 5

 // прямая запись в открытую переменную two
 // с переменной one такая запись невозможна, так
 // как доступ к ней закрыт
 obj.two=45;

 // снова показ на экран
 obj.Show(); // 2 45

}

Вышеописанный пример вполне интуитивно прост, однако, выделим один из главных моментов - переменные класса нет необходимости передавать в методы класса в качестве параметров, так как они видны в них автоматически.

Категория: C | Добавил: DEN-SHP (06.11.2012)
Просмотров: 754 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]