Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
45
Добавлен:
17.04.2013
Размер:
79.36 Кб
Скачать

Доступ к элементам-данным

Функции-элементы находятся в области действия класса, в котором они определены. Т.о. они могут обращаться к любому элементу класса Б, используя просто имя переменной. Обычные функции или функции-элементы другого класса могут получить доступ к элементам-данным с помощью операции . или ->, применяемых к представителю или указателю на представитель класса.

Пример.

class coord{

public:int x,y; // координаты x и y

};

void main()

{

coord org; // представитель класса координат

coord *orgptr=&org; // указатель на представитель класса

org.x=0; // задание значения координаты x

orgptr->y=0; // задание значения координаты y

}

Вызов функций-элементов

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

Пример.

class coord{

int x,y; // координаты x и y

public:

void setcoord(int _x, int _y) // функция задания значений координат

{ x=_x; y=_y;};

void getcoord(int &_x,int &_y) // функция полуцения значений координат

{ _x=x; _y=y;};

};

void main()

{

coord org; // представитель класса координат

coord *org*ptr=&org; // указатель на представитель класса

org.setcoord(10.10); // вызов функции-элемента задания

// значений

int col,row;

orgptr->getcoord(col,row); // вызов функции-элемента получения

// значений координат

}

Указатель this

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

Пример.

class simple

{

public:

simple();

void greet() { printf(“ Hello!”);};

};

simple::simple()

{

greet(); // вызов

this->greet(); // функции

(*this).greet(); // greet()

}

Т.к. функции-элементы могут обращаться ко всем элементам класса просто по имени, в основном указатель this используется для возврата указателя (return this ) или ссылки ( return *this ) на подразумеваемый объект.

Конструктор

Конструктор инициализирует представитель класса (объект ) и является функцией-элементом с тем же именем, что и класс. Конструктор вызывается компилятором всегда, когда создается представитель класса.

Для конструкторов выполняются следующие правила:

-для конструктора не указывается возвращаемый тип;

-конструктор не может возвращать значение;

-конструктор не наследуется.

Деструктор

Деструктор является дополнением конструктора. Он имеет то же имя, что и класс, но с префексом-тильдой (~). Он вызывается всякий раз, когда уничтожается представитель класса. Для деструктора существуют следующие правила:

-деструктор не может иметь аргументов;

-деструктор не может возвращать значения;

-деструктор не наследуется.

Дружественные классы

Разрешить элементам другого класса полный доступ к элементам данного класса, объявленным как private или protected, можно включив в определение данного класса описание friend.

Пример.

class myclass

{

friend class another_class;

};

Соседние файлы в папке Lab7