Запрограммируйте на С ++ 2 класса и найдите максимум 2 числа.
Я хочу найти максимум 2 числа, но вместо простого метода мне нужно использовать 2 класса и функции друзей. Как это реализовать? Я использую следующий код, но код не работает.
#include<iostream>
using namespace std;
class one
{
int a;
public:
friend int cal(one a);
};
class two
{
int b;
public:
friend int cal(one a,two b);
};
cal(int f,int g)
{
int ans=(x.a>y.b)?x.a:y.b;
}
int main()
{
one x;
two y;
cal(10,20);
}
2 ответа
Решение
#include<iostream>
using namespace std;
class biggest
{
private:
int a,b;
public:
void input();
void display();
};
void biggest::input()
{
cout<<"Enter 2 nos.:";
cin>>a>>b;
}
void biggest::display()
{
if(a>b)
cout<<"Biggest no.:"<<a;
else
cout<<"Biggest no.:"<<b;
}
int main()
{
biggest b;
b.input();
b.display();
}
Выход
Введите 2 номера:133 21
Пример вывода
Самый большой номер: 133
Установив функцию как "друга", вы даете ей доступ к закрытым членам класса. Пример выглядел действительно странно, но, думаю, так и будет. Оба класса здесь предоставляют приватным членам доступ к функции "cal".
#include<iostream>
using namespace std;
class one;
class two;
class one
{
int a = 10;
public:
friend int cal(one a,two b);
};
class two
{
int b = 20;
public:
friend int cal(one a,two b);
};
int cal(one x,two y)
{
return (x.a>y.b)?x.a:y.b;
}
int main()
{
one x;
two y;
cout << cal(x,y);
}