Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
CPos pos(10,10,20,20);Стр 1 из 7Следующая ⇒ CPos pos; n В этом случае переменная pos называется представителем класса, у которого также вызывается конструктор при его создании и деструктор при его удалении из памяти. n при создании нового экземпляра класса можно выполнять инициализацию различных переменных путем передачи их значений через конструктор. В этом случае конструктор должен быть объявлен с набором необходимых аргументов: n class CPos ep_x = x2; ep_y = y2; int sp_x, sp_y; n процесс создания экземпляра класса принимает вид: CPos *pos_ptr = new CPos(10,10,20,20); или CPos pos(10,10,20,20); n конструктор, как и любую функцию, можно перегружать, то есть можно задать несколько типов конструкторов (с разным набором входных параметров) в одном и том же классе. n Для описания нескольких типов конструкторов в одном классе достаточно дать их определения в нем: n Пример: class CPos CPos(int x1, int y1, int x2,int y2) // конструктор { Методы класса n В классах помимо переменных, конструкторов и деструкторов можно задавать описания и обычных функций, которые, в этом случае, называются методами. n Это позволит: 1) не запоминать имена этих переменных, а оперировать только одной функцией и; 2) в самой функции можно реализовать необходимые проверки на истинность переданных значений координат перед их присваиванием переменным. n Пример: class CPos void SetParam(int x1, int y1, int x2, int y2) Вызов функций n Функцию можно вызывать через указатель на класс, используя оператор ‘->’ или через представитель с помощью оператора ‘.’ n Пример: CPos* pos_ptr = new CPos(); //Таким же образом можно обращаться и к переменным класса: pos_ptr->sp_x = 10; Уровни доступа n В классах для переменных и функций предусмотрена возможность установки разных уровней доступа, которые определяются тремя ключевыми словами: public, private и protected; n ключевое слово public означает общий доступ к переменным и функциям класса; n уровень доступа private указывает на частный способ доступа к элементам класса и устанавливается по умолчанию при описании класса. Частный уровень доступа дает возможность обращаться к переменным и функциям только внутри класса и запрещает извне, например, через представители или указатели на класс; n режим доступа protected также как и private запрещает доступ к элементам класса через представители и указатели, но разрешает обращаться к ним из дочерних классов при наследовании. n Пример: class CPos void SetParam(int x1, int y1, int x2, int y2); Наследование n на основе базового класса, который содержит общую информацию, можно построить дочерние для более детальной работы с объектами, используя механизм наследования; n для этого после имени дочернего класса ставится символ ‘:’, а затем пишется имя базового класса с указанием уровня доступа; n Пример: class CPos }; n Для работы с дочерним классом, также как и с обычным, необходимо создать его экземпляр либо с помощью оператора new, либо через представитель: CLine* line_ptr = new CLine(); /* или */ CLine line; n При создании нового объекта CLine вызывается сначала конструктор CPos() базового класса, а затем конструктор дочернего – CLine(). Таким образом, создается как бы два объекта: CPos и CLine, но они представляются как единое целое объекта CLine. n Для работы с другими графическими примитивами (прямоугольником и эллипсом) подобным образом можно создать дочерние классы от CPos, отличающихся друг от друга реализацией функции Draw(): class CRect: public CPos Иерархия классов n class CProp // базовый класс 2 {
n // дочерний класс class CLine: public CPos, public CProp { }; n Работа с функциями класса CLine через его представитель имеет вид: CLine line; Виртуальные методы n Виртуальные методы позволяют программировать действия, общие для всех производных классов, в терминах базового класса. n Динамически, во время выполнения программы, будет вызываться метод нужного класса. n Пример:
|