在 C++ 中编程以使用 2 类 并找到 2 个数字中的最大值

Program in c++ to use 2 classes and find maximum of 2 numbers

我想找到 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);
}
#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

通过将函数设置为 "friend",您可以授予它访问 class 的私有成员的权限。例子看起来很奇怪,但我想这就可以了。这里的两个 classes 都允许私有成员访问 "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);
}