Red de conocimiento informático - Computadora portátil - Herencia de objetos C y programación de funciones virtuales

Herencia de objetos C y programación de funciones virtuales

#includelt;iostreamgt;

#includelt;stdio.hgt;

#includelt;stringgt;

usando el espacio de nombres std;

const double PI = 3.14159;

clase Forma

{

protegido:

nombre de cadena;

p>

público:

Forma(cadena n): nombre(n){}

cadena getName(){return name;}

área doble virtual() = 0;

perímetro doble virtual() = 0

};

clase Rectángulo: forma pública

p>

{

protegido:

doble largo;

doble ancho;

público:

Rectángulo(cadena n, doble l, doble w): Forma(n), longitud(l), ancho(w){}

void setL(doble l){longitud = l;}

doble getL(){longitud de retorno;}

void setW(doble w){ancho = w;}

doble getW(){ancho de retorno;}

doble área(){return largo * ancho;}

doble perímetro(){return 2 * (largo ancho);}

};

clase Círculo: Forma pública

{

protegido:

doble radio;

público:

Círculo(cadena n, doble r): Forma(n), radio(r){}

void setR(doble r){radio = r;}

doble getR (){radio de retorno ;}

doble área(){radio de retorno * radio * PI;}

doble perímetro(){retorno 2 * radio * PI;}

} ;

int main()

{

Forma *p[2];

p[0] = nuevo Rectángulo("Rectángulo", 3, 5);

p[1] = nuevo Círculo("círculo", 4);

cout lt; ] -gt; getName() lt; "El área es: " lt;

lt; endl;

cout lt; p[0] -gt; getName() lt;lt; "El perímetro de " es: " lt; lt; p[0] -gt; () lt; lt; endl;

El área de cout lt; p[1] -gt; ] -gt; área() lt; endl;

El perímetro de cout lt; p[1] -gt; p[1] -gt; perímetro() lt; lt;

for(int i = 0; i lt; 2; i )

{

eliminar p [i];

p[i] = NULL;

}

devolver

}