БЕСПЛАТНОЕ РЕШЕНИЕ ЗАДАЧ

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

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

#include 
using namespace std;
//Анонс класса:
class B;
//Класс с закрытым полем:
class A{
double x;
public:
A(double z){x=z;}
//Дружественная функция с двумя аргументами:
friend double summa(A a,B b);
}a(3.5);
//Класс с закрытым полем:
class B{
double y;
public:
B(double z){y=z;}
//Дружественная функция с двумя аргументами:
friend double summa(A a,B b);
}b(2.3);
double summa(A a,B b){
return a.x+b.y;
}
int main(){
//Вызов дружественной функции:
cout << "Total is " << summa(a,b) << endl;
return 0;
}

Оставить комментарий

Вы должны быть авторизованы , чтобы оставить или оценить комментарий.

Онлайн всего: 5
Гостей: 5
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте