Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Тело класса и составные функции



 

Класс – это производный структурированный тип, определяемый пользователем на

основе уже существующих базовых типов. Механизм классов позволяет создавать

типы в полном соответствии с принципами абстракции данных, т.е. класс задает

некоторую структурированную совокупность типизированных данных и позволяет

определить набор операций над этими данными.

Класс можно определить с помощью инструкции объявления:

ключ_класса имя_класса {

компоненты_класса

};

где ключ_класса – одно из ключевых слов class, struct, union; имя_класса –

произвольно выбираемый идентификатор; компоненты_класса – объявления

типизированных данных и принадлежащих классу функций. Компонентами класса

могут быть данные, функции, вложенные классы, перечисления, битовые поля,

дружественные функции, дружественные классы и имена типов.

 

Для доступа к компонентам класса, например, можно использовать имя_класса в

качестве квалификатора:

квалификация без указания имени объекта (полная квалификация)

имя_класса::имя_компонента_класса

квалификация с указанием имени объекта

имя_объекта .имя_класса::имя_компонента_класса

Квалификатор имя_класса вместе с оператором разрешения области видимости ::

могут быть опущены, тогда для доступа к компонентам объекта класса, например,

можно использовать уточненные имена:

имя_объекта .имя_компонента_данных

имя_объекта .имя_компонентной_функции(список_аргументов_вызова)

Тело функции — это просто составной оператор. Составной оператор содержит операторы, которые определяют действия функции, и может также содержать объявления переменных,

используемых в этих операторах. Все переменные, объявленные в теле функции, имеют тип памяти auto, если они не объявлены иначе. Когда вызывается функция, то создается память для

локальных переменных и производится их инициализация (если

она задана). Управление передается первому оператору

составного оператора и начинается процесс выполнения,

который продолжается до тех пор, пока не встретится оператор

returnили конец тела функции. Управление при этом

возвращается в точку вызова.

Если функция возвращает значение, то должен быть

выполнен оператор return, содержащий выражение.

Значение возврата не определено, если не выполнен

оператор returnили если в оператор returnне было включено

выражение.

 

Указатели на массивы. Указатели на строки.

Указатели - это переменные, которые содержат адрес адреса данных. В С++ указатели могут быть на любой тип данных.

Если необходимо, можно описать массив указателей.

int*ip[ 10 ];

массив указателей на целые значения из 10 элементов.

С указателем можно производить некоторые арифметические операции. Например, при работе с массивами.

Пусть sub содержит номер элемента массива, тогда до этого элемента можно "добраться"

mas [ sub ]

или

*(mas +sub)

Т.к. имя массива фактически является указателем на нулевой элемент массива. Переменная sub указывает на сколько элементов необходимо сместиться. Вы можете инкрементировать и декрементировать указатель. При этом вы смещаетесь на один элемент, независимо от типа элемента.

Допустим uk адрес нулевого элемента массива, тогда

cout<<*uk; // вывод значения 0-го элемента uk++; cout<<*uk; // вывод значения 1-го элемента, реально смещение на несколько байтовuk+=2cout<<*uk; // вывод значения 3-го элемента.

Наиболее полезное применение массивов указателей - это массив указателей на строки.

Пример.

char names [3] [20]= {{"Иванов"},{"Петров"},{"Сидоров "}};

Схематично можно изобразить следующим образом

Рисунок 1.7.2.

Для вывода строки можно использовать



Просмотров 803

Эта страница нарушает авторские права




allrefrs.su - 2024 год. Все права принадлежат их авторам!