Запрограммируйте на С ++ 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);
}
Другие вопросы по тегам