Ich bin ein neuling in Sachen c++ und komme durch eine Fehlermeldung nicht weiter.

die Fehlermeldung heißt : cannot declare variable to be abstract type
Diese Fehlermeldung taucht 9 mal auf ,da ich 9 objekte erzeugt habe.
Die erste und Gleichzeitig Basisklasse ist Flaeche von der leite ich Ring,kreis,schablone,Rechteck,und Quadrat.
Dannach rechne ich von jedem Objekt den Umfang und die Fläche.
main.cpp
Code: Alles auswählen
#include <iostream>
using namespace std;
#include "beispiel51.h"
#include "beispiel52.h"
#include "beispiel53.h"
#include "beispiel54.h"
#include "beispiel55.h"
#include "beispiel60.h"
int main(){
Flaeche *liste[9];
int index = 0;
float sum_Umfang = 0;
Ring blau_ring("BLAU",5,2);
Kreis gelb_kreis("GELB",7);
Rechteck gruen_rechteck("GRUEN",5,6);
Kreis rot_kreis("ROT",8);
Schablone weiss_schablone("WEISS",20,6,3);
Rechteck schwarz_recheck("SCHWARZ",10,20);
Schablone blau_schablone("BLAU",30,5,5);
Ring lila_ring("LILA",100,5);
Quadrat rosa_q("ROSA",5);
liste[0] = &blau_ring;
liste[1] = &gelb_kreis;
liste[2] = &gruen_rechteck;
liste[3] = &rot_kreis;
liste[4] = &weiss_schablone;
liste[5] = &schwarz_recheck;
liste[6] = &blau_schablone;
liste[7] = &lila_ring;
liste[8] = &rosa_q;
while (index <= 8){
(liste[index])->getFarbe();
sum_Umfang += (liste[index++])->berechneUmfang();
}
cout << "\nDie Gesamtflaeche betreagt "
<< sum_Umfang<< "Einheiten";
return 0;
}
Ich zeige nur eine .h und .cpp Dateien weil es eigentlich immer, der gleiche Fehler ist.
Code: Alles auswählen
/ bspl0053.h
#ifndef _RING_
#define _RING_
#include "beispiel52.h"
class Ring : public Kreis
{
public:
Ring(char *n, float aussen, float innen);
~Ring();
float berechneFlaeche() const;
int berechneUmfang(float dd2,float ppi = 3.14);
private:
float innenradius;
};
#endif
Code: Alles auswählen
/ bspl0053.cpp
#include "beispiel53.h"
Ring::Ring(char *n, float aussen, float innen)
:Flaeche(n),Kreis(n, aussen)
{
innenradius=innen;
}
int Ring::berechneUmfang(float dd2,float ppi ){
dd2*=ppi;
umfang = dd2;
return umfang;
}
Ring::~Ring()
{
}
float Ring::berechneFlaeche() const
{
return (Kreis::berechneFlaeche()-
(innenradius*innenradius*3.141593F));
}