Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Void main (void)



{

goods top [5] ={ { “Костюм “, 10000}, { “Шляпа”, 1100 } };

// инициализация двух объектов из пяти при объявлении массива объектов

for (int i =2; i <5; i++) top [i].vvod();

// вводятся данные в объекты массива с помощью компонентной функции

for(i =0; i<5; i++) top[i].vivod; // выводятся данные о товарах

goods::SetPer(30);

// присваивается другое значение статическому компоненту

good* ptr = top; // объявлен указатель на объект класса и инициирован

адресом первого элемента массива (экв. &top[0])

for(i=0; i <5; i++)

ptr++ -> vivod(); // после каждого вызова функции указатель

} //”настраивается” на следующий элемент

Друзья классов

Защищенные компоненты (protected) доступны внутри класса и в производных классах.

Собственные компоненты (private) локализованы в классе и не доступны извне.

Через общедоступные компоненты (public) осуществляется взаимодействие класса с любыми частями программы.

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

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

Таким образом, расширить интерфейс класса позволяют дружественные функции.

Дружественной функцией класса называют функцию, которая не является компонентной функцией класса, но имеет доступ к защищенным и собственным компонентам класса.

Дружественная функция

1) должна быть описана в теле класса соспецификатором friend;

2) не может быть компонентной функцией класса, в котором она определена

как дружественная;

3)может быть глобальной: class A { friend void f(…); … };

void f (…) { …}

4) может быть компонентной функцией другого ранее определенного класса;

и тогда при описании в классе надо использовать полное имя функции, включающее имя класса, которому она принадлежит:

class A { … void f1(…); …};

class B { … friend void A:: f1(…); …};

5) может быть дружественной по отношению к нескольким классам

class A; // опережающее описание класса

class B { …friend void ff (A, B); …};

class A { …friend void ff (A, B); …};

void ff (A tip1, B tip2) { тело функции}

Рассмотрим методику работы с дружественными функциями класса комплексных чисел. Такой класс входит в пакет Borland C++ (файл complex.h), мы построим свой класс (упрощенный)

//Класс комплексных чисел

#include <iostream.h>

#include <math.h>

class Complex {





Дата публикования: 2014-11-28; Прочитано: 306 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...