2017-09-08 9 views
-1

2つの数字の最大値を探したいが、単純な方法の代わりに2つのクラスとフレンド関数を使用する必要がある。それを実装する方法は? 次のコードを使用していますが、コードが機能していません。2つのクラスを使用して最大2つの数字を見つけるためのC++のプログラム

#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); 
} 
+0

また、クラスが終了した直後にクラスのオブジェクトを作成すると動作しますか? –

+1

超音速のような音ですが、それはおそらくあなたの宿題が表現されている方法です。あなたは、比較したい2つのクラスを持っていますか?または、割り当ての意味は:1つのクラスを使用して数値を保存し、1つのクラスで最大2つの数値を見つけますか? – CompuChip

+0

@CompuChipはい、割り当てには2つのクラスとフレンド機能を使用するように指定されています。しかし、私は正しい方法を理解できませんでした。 –

答えて

0
#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 nos.:133 21

サンプル出力

最大no.:133

0

を入力します」あなたはクラスのプライベートメンバーにアクセスできます。例は本当に奇妙に見えましたが、私はこれがそれをすると思います。どちらのクラスもプライベートメンバーに "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); 
} 
+0

友人の機能にアクセスできるように公開する必要はありませんが、コンストラクタを追加するとこのコードはより一般的になります。 –

+0

@Bob__他の宣言がそこに作られているという理由だけで、特定の理由で友人の機能を公開することはありませんでした。 –

関連する問題