Clases derivadas y preguntas sobre programación de funciones virtuales
#include
#include
#include
#include #include #include usando el espacio de nombres std; forma de clase { protected: double log;//Longitud del lado inline void show () {cout<<"La longitud del lado (diámetro) es:"< public : área doble virtual ()=0; forma () {log=0;} forma (doble d) {log=d;} }; clase bola:forma pública //Derivación de la bola { público: bola ():forma () {} bola (doble d):forma (d) {} doble área (); volumen ( ); }; clase cuadrado:forma pública//derivación de bola { público: cuadrado (): forma ( ) {} cuadrado (doble d): forma (d) {} doble área (); doble volumen (); }; forma **rand_arry(); ); p> #define PAI 3.14 int main () { forma **s=rand_arry(); para ( int i=0 ;i<5;i++) //Usa RTT para procesar la clase recibida if (typeid (*s[i])==typeid (ball)) cout<<"Área de circulo:" < retorno 0; } doble bola::área () { show (); return PAI*pow((log/2),2); } doble bola::volumen () { show (); return (4.0/3)*PAI*pow((log/2),3); } forma ** rand_arry() { forma **s=nueva forma*[5]; srand (tiempo(0)); for (int i=0;i<5;i++) { if (rand () %2) s[i] =nueva bola(rand ()%6+1); s[i]=nuevo cuadrado(rand ()%6+1 } return s; } doble cuadrado::área () { show (); return pow(log,2); } doble cuadrado::volumen () { show (); devuelve pow(log,3); }area()<