Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Объявление базового классаСтр 1 из 6Следующая ⇒ Основные теоретические сведения
DevC++ дает вам возможность объявить базовый класс, который инкапсулирует имена своих свойств, данных, методов и событий. Помимо способности выполнять свою непосредственную задачу объектные методы получают определенные привилегии доступа к значениям свойств и данных класса. Каждое объявление внутри класса определяет привилегию доступа к именам класса в зависимости от того, в какой секции имя появляется. Каждая секция начинается с одного из ключевых слов: private, protected и public. Пример иллюстрирует обобщенный синтаксис объявления базового класса.
class className { private: <приватные члены данных> <приватные конструкторы> <приватные методы> protected: <защищенные члены данных> <защищенные конструкторы> <защищенные методы> public: <общедоступные свойства> <общедоступные члены данных> <общедоступные конструкторы> <общедоступный деструктор> <общедоступные методы> };
Таким образом, объявление базового класса на C++ предоставляет следующие права доступа и соответствующие области видимости:
Следующие правила применяются при образовании различных секций объявления класса:
Следующий пример представляет попытку наполнить объявление базового класса некоторым конкретным содержанием. Отметим характерное для компонентных классов 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();
Объявления и определения методов хранятся в разных файлах (с расширениями.h и.срр, соответственно). Пример показывает, что когда методы определяются вне класса, их имена следует квалифицировать. Синтаксис такой квалификации метода, определяющей его область видимости, имеет следующий вид:
<имя класса>:: <имя метода>
Пример определения конструктора и методов вне класса: TPoint::TPoint(double xVal, double yVal) { // Тело конструктора void _fastcall TPoint::SetCount(int Value) { if (Value i= FCount) // Новое значение члена данных? { FCount = Value; // Запись нового значения Update(); // Вызов метода Update } } double TPoint::getX() // Тело метода getX, квалифицированного в классе TPoint }
После того, как вы объявили класс, его имя можно использовать как идентификатор типа при объявлении объекта этого класса (например, TPoint* MyPoint;).
|