718_____________________________________________Глава 12

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

Синтаксис объявления класса следующий:

class <имя класса> : <список классов — родителей>
{

public:          // доступно всем
<данные, методы, свойства, события>

published      // видны в Инспекторе Объекта и изменяемы
<данные, свойства>
protected:       // доступно только потомкам

<данные, методы, свойства, события>
private:         // доступно только в классе

<данные, методы, свойства, события>
} <список переменных>;

Например:

class MyClass : public Classi, Class2

{

public:

MyClass(int = 0) ;

void SetA(int) ;

int GetA(void);

private:

int FA;

double B, C;

protected:

int F(int) ;

);

Имя класса может быть любым допустимым идентификатором. Идентифика-
торы классов, наследующих классам библиотеки компонентов C++Builder, приня-
то начинать с символа «Т».

Класс может наследовать поля (они называются данные — элементы), методы
(они называются функции — элементы), свойства, события от других классов —
своих предков, может отменять какие-то из этих элементов класса или вводить но-
вые. Если предусматриваются такие классы — предки, то в объявлении класса по-
сле его имени ставится двоеточие и затем дается список родителей. В приведенном
выше примере предусмотрено множественное наследование классам Classi и
Class2. Если среди классов — предков встречаются классы библиотеки компонен-
тов C++Builder или классы, наследующие им, то множественное наследование за-
прещено.

Если объявляемый класс не имеет предшественников, то список классов — ро-
дителей вместе с предшествующим ему двоеточием опускается. Например:

class MyClassI
{

Доступ к объявляемым элементам класса определяется тем, в каком разделе
они объявлены. Раздел public (открытый) предназначен для объявлений, которые
доступны для внешнего использования. Это открытый интерфейс класса. Раз-
дел published (публикуемый) содержит открытые свойства, которые появляются в
процессе проектирования на странице свойств Инспектора Объектов и которые,
следовательно, пользователь может устанавливать в процессе проектирования.
Раздел private (закрытый), содержит объявления полей и функций, используемых
только внутри данного класса. Раздел protected (защищенный) содержит объявле-
ния, доступные только для потомков объявляемого класса. Как и в случае закры-