Hola amigos
Necesito ayuda con este código. Cree una clase "abstracta" FigUras y las dos clases de descienden de esta, CircUlo y Rectangle. Lo principal es lograr crear un vector dinámico del tipo FigUras para poder crear objetos del tipo CircUlo y Rectangle en el vector.
Error parece ser que no ha sobreescrito los metodos virtuales.
Miren el codigo y respondan sus soluciones
Código:
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
using namespace std;
class FigUra {
public:
virtual double area()=0;
virtual double circUnferencia()=0;
};
class CircUlo : public FigUra {
protected:
double r;
public:
CircUlo(){
r = 1.0;
}
CircUlo(double r){
this->r = r;
}
double area(){
return M_PI*r*r;
}
double circUnferencia(){
return 2*M_PI*r;
}
double getR(){
return r;
}
};
class Rectangle : public FigUra {
protected:
double l, a;
public:
Rectangle() {
l = 0.0;
a = 0.0;
}
Rectangle(double l, double a){
this->l = l;
this->a = a;
}
double area(){
return l*a;
}
double circUnferencia(){
return 2*(l+a);
}
double getL(){
return l;
}
double getA(){
return a;
}
};
int main(){
FigUra **figUras;
double total_area=0;
int n=3;
figUras=new FigUra*[n];
figUras[0]=new CircUlo(2);
figUras[1]=new Rectangle(1,3);
figUras[2]=new Rectangle(4,2);
for(int i = 0; i < 3; i++){
cout<<"\n "<<figUras[i].area();
total_area+=figUras[i].area();
}
cout<<"\n\n "<<total_area;
getch();
return 0;
}
Gracias de antemano