2017-09-08 1 views
-1

Je veux trouver le maximum de 2 nombres mais au lieu de la méthode simple, j'ai besoin d'utiliser 2 classes et fonctions ami. Comment l'implémenter? J'utilise le code suivant mais le code ne fonctionne pas.Programme en C++ pour utiliser 2 classes et trouver maximum de 2 nombres

#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

Aussi, cela fonctionnera-t-il si je crée l'objet de la classe juste après la fin de la classe? –

+1

On dirait que c'est trop, mais c'est probablement ainsi que vos devoirs sont formulés. Êtes-vous sûr de vouloir avoir deux classes différentes que vous voulez comparer? Ou l'affectation signifie-t-elle: utiliser une classe pour stocker les nombres et une classe qui trouve le maximum de deux de ces nombres? – CompuChip

+0

@CompuChip Oui l'affectation dit d'utiliser 2 classes et fonction ami. Mais je ne pouvais pas trouver un moyen approprié. –

Répondre

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


} 

sortie

Entrée 2 nos.:133 21

Exemple de sortie

plus grande no.:133

0

En définissant une fonction de " ami ", vous lui donnez accès à des membres privés d'une classe. L'exemple avait l'air vraiment étrange, mais je suppose que cela le fera. Les deux classes permettent aux membres privés d'accéder à la fonction "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

Veuillez noter que les fonctions ami n'ont pas besoin d'une visibilité publique pour être accessibles, mais l'ajout de certains constructeurs rendrait ce code plus général. –

+0

@Bob__ Je n'ai pas rendu public la fonction friend pour une raison spécifique mais simplement parce que les autres déclarations étaient en cours. –