Базовые классы. Классы и члены в Си. Получение доступа к членам класса. Ограничение доступа к членам класса. Определение методов класса. Конструкторы и деструкторы в С++. Вложенные классы. Структуры
КлассыНовый тип создаётся путём объявления классов. Класс — это просто коллекция переменных, скомбинированная с набором связанных функций. Это совмещение данных и операций над ними в один объект называется инкапсуляция. Данные в классе называют переменными-членами или данными-членами. Функции класса часто выполняют операции над переменными-членами класса и называются функциями-членами или методами класса. Функции члены принадлежат классу так же, как и данные-члены, и определяют функциональные возможности класса. Для объявления класса используется ключевое словоclass. Пример:
Class Cat Объявление класса не резервирует память под данные, здесь только сообщается: о существование класса с таким именем и сколько памяти требуется для каждого объекта этого класса (память выделяется под данные-члены, под методы память не выделяется. Определение объектов происходит так: Cat Vaska; Доступ к членам классаСуществует оператор прямого доступа (.) Vaska.Weight =5; Рекомендации:
В объявления класса используются и другие ключевые слова. Двумя важными из них являются public и private. Все данные-члены и методы являются закрытыми по умолчанию, то есть к ним можно получить доступ только методами самого класса. Открытые члены доступны всем функциям программы. Определение доступности и скрытости для членов класса иммет принципиальное значение. Class Cat а затем в main() cat Vaska; Вызовет ошибку компиляции, так как все члены класса Сat закрыты, а присвоение идёт во внешней к классу функции.
Class Cat
Согласно общей стратегии объектно-ориентированного программирования данные-члены класса должны быть закрытыми. Доступ следует открыть только к методам класса обеспечивающим доступ к закрытым данным.. Этим достигается инкапсуляция данных внутри класса. Эти функции называются методами доступа. Это позволяет скрыть от пользователя вид в котором хранятся данные, и если в дальнейшем этот вид будет изменён, то достаточно переписать только функции доступа, все остальные функции продолжат работать. Поэтому последующая поддержка программы требует меньших затрат. #include<iostream.h> int Mass::getSize() void Mass::putSize(int ss) void Mass::del() int main(void) int ss,m,size=100; Любую переменную можно инициализировать, то есть присвоить ей значения, для инициализации объектов класса существуют специальные функции — конструкторы. Имя конструктора совпадает с именем класса, при необходимости он может принимать параметры, но не может возвращать значения даже типа void. Для примера: Arrey(). Если пользователь не объявляет конструктор, то существует конструктор по умолчанию, который ничего не делает, но он есть. Соответственно существует функции уничтожающая объекты класса — деструктор, она очень похожа на конструктор по своим свойствам. Зачастую наличие конструктора (стандартного, который ничего не делает) необходимо по протоколу. Имя деструктора ~Arrey. Домашняя работа написать предложенную программу, так что бы в ней были конструктор с 3-мя параметрами и деструктор. |