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));
}





 
 