Sunteți pe pagina 1din 4

SEGUIMIENTO CLASE AMIGA

#include <iostream>

using namespace std;

class Cuadrado{

friend class Rectangulo;//Declaracion rectangulo como clase amiga

int lado;

public:

Cuadrado(int l){

lado=l;

};

class Rectangulo{

int largo, ancho;

public:

int getArea(){

return largo*ancho;

void forma(Cuadrado a){

largo= a.lado;

ancho= a.lado;

};

int main(){

Cuadrado cuadrado(6);

Rectangulo rectangulo;

rectangulo.forma(cuadrado);
cout<<"El area es: "<<rectangulo.getArea()<<endl;

return 0;

#include <iostream>

using namespace std;

class Cuadrado;//Declaracion anticipada de la clase cuadrado requerida por la clase rectangulo

class Rectangulo{

int largo, ancho;

public:

int area(){

return (ancho*largo);

void conversion(Cuadrado a);

};

class Cuadrado{

friend class Rectangulo;

private:

int lado;

public:

Cuadrado(int a) : lado(a){}

};

void Rectangulo::conversion(Cuadrado a){

largo= a.lado;

ancho= a.lado;

}
int main(){

Rectangulo rectangulo;

Cuadrado cuadrado(9);

rectangulo.conversion(cuadrado);

cout <<"El area es: "<<rectangulo.area()<<endl;

return 0;

#include <iostream>

using namespace std;

class Cuadrado;

class Rectangulo{

int largo,ancho;

public:

Rectangulo(int l= 1,int a= 1) : largo(l), ancho(a){ }

void visualizacion(){

cout<<"Area del rectangulo: "<<largo*ancho<<endl;

void transformacion(Cuadrado &);//el operador & envia valores por referencia y


justamente se usa para indicar una direccion de memoria

//donde se va a almacenar el dato

};

class Cuadrado{

int lado;
public:

Cuadrado(int c=1) : lado(c){}

void visualizacion(){

cout<<"Area del cuadrado: "<<lado*lado<<endl;

friend class Rectangulo; //Rectangulo es considerada como una clse amiga por cuadrado, pero
rectagunlo no considera que cuadrado sea una clse amiga

//lo que significa que rectangulo puede acceder a los miembros privados de cuadrado

//pero no inversamente

};

void Rectangulo::transformacion(Cuadrado &c){

largo= c.lado;

ancho= c.lado;

int main(){

Rectangulo rectangulo(4,8);

Cuadrado cuadrado(3);

cout<<"Area antes de la transformacion "<<endl;

rectangulo.visualizacion();

cuadrado.visualizacion();

rectangulo.transformacion(cuadrado);

cout<<"\nArea despues de la transformacion"<<endl;

rectangulo.visualizacion();

cuadrado.visualizacion();

return 0;

S-ar putea să vă placă și