2017-09-08 1 views
-1

Ich möchte das Maximum von 2 Zahlen finden, aber anstelle der einfachen Methode, muss ich 2 Klassen und Freunde Funktionen verwenden. Wie man es umsetzt? Ich verwende den folgenden Code, aber der Code funktioniert nicht.Programm in C++, um 2 Klassen zu verwenden und maximal 2 Nummern zu finden

#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

Wird es auch funktionieren, wenn ich das Objekt der Klasse erstellen, gleich nachdem die Klasse endet? –

+1

Klingt nach Overkill, aber das ist wahrscheinlich die Art, wie deine Hausaufgaben formuliert werden. Sind Sie sicher, dass Sie zwei verschiedene Klassen haben möchten, die Sie vergleichen möchten? Oder bedeutet die Zuweisung: Verwenden Sie eine Klasse, um die Zahlen zu speichern, und eine Klasse, die das Maximum von zwei solcher Zahlen findet? – CompuChip

+0

@CompuChip Ja, die Zuweisung besagt, dass 2 Klassen und Freundesfunktionen verwendet werden sollen. Aber ich konnte keinen richtigen Weg finden. –

Antwort

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(); 


} 

Ausgabe

Geben Sie 2 nos.:133 21

Beispielausgabe

Biggest no.:133

0

Durch eine Funktion als eine Einstellung " Freund ", geben Sie es privaten Mitgliedern einer Klasse zugänglich. Beispiel sah wirklich seltsam aus, aber ich denke, das wird es tun. Beide Klassen geben privaten Mitgliedern Zugriff auf die "cal" -Funktion.

#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

Bitte beachten Sie, dass Friend-Funktionen keine öffentliche Sichtbarkeit benötigen, um zugänglich zu sein, aber das Hinzufügen einiger Konstruktoren würde diesen Code allgemeiner machen. –

+0

@Bob__ Ich habe die Friend-Funktion aus einem bestimmten Grund nicht öffentlich gemacht, sondern nur, weil dort die anderen Deklarationen gemacht wurden. –

Verwandte Themen