П.8.2 Public

П. 8.1 Private

Директивы Private, Public, Protected.

Классы и модули.

Пример использования указателя this.

В методе объекта на поля объекта, для которого она была вызвана, можно ссылаться непосредственно. Например:

class x {

int m;

public:

int Get_m() { return m; }

};

x aa;

x bb;

void main()

{

int a = aa.Get_m();

int b = bb.Get_m();

// ...

}

В первом вызове метода Get_m(), m относится к aa.m, а во втором - к bb.m.

Указатель на объект, для которого вызван метод, является скрытым параметром метода. На этот неявный параметр можно ссылаться явно как на this. В каждом метода класса x указатель this неявно описан как

x* this;

и инициализирован так, что он указывает на объект, для которого была вызван метод. this не может быть описан явно, так как это ключевое слово. Класс x можно эквивалентным образом описать так:

class x {

int m;

public:

int Get_m() { return this->m; }

};

При ссылке на поля использование this излишне. Главным образом this используется при написании методов, которые манипулируют непосредственно указателями.

В языке С++ модули используют преимущественно для создания библиотек, процедур, функций и классов, и затем эти библиотеки могут использоваться в программах. Принцип скрытия информации, которая поддерживается модулем, позволяет создавать надежные и легко модифицируемые программы.

*.cpp – программная реализация

*.h – интерфейс, файл заголовков

Разделённость описания классов и реализации их методов соответствует оформлению в виде модуля.

Рекомендуется сначала проделать описание всех классов, а потом описание методов.

Директивы private и public называются спецификаторами доступа. Спецификатор private означает, что элементы данных и элементы-функции, размещенные под ним, доступны только функциям-элементам данного класса. Это так называемый закрытый доступ.

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

Есть еще спецификатор защищенного доступа protected, означающий, что элементы в помеченном им разделе доступны не только в данном классе, но и для функций-элементов классов, производных от него.

 

class obj{

Private:

Приватные (закрытые) поля;

Приватные методы;

Public:

Общедоступные поля;

Общедоступные методы;

}

 

class tlocation {

public:

int GetX() { return x };

int GetY() { return y };

Private:

Int x, y;

void Init(int InitX, int InitY);

}

{доступ к полям x, y и методу Init получить не возможно}

void tlocation::Init(int InitX, int InitY){

x= InitX;

y= InitY;

}

class tlocation {

Private:

Int x, y;

Init( )

Public:

Int GetX();

Int GetY();