Abstrakte Klassen: Problem solved :)
-
Problem solved

/* * Reifenhandel.cpp * * Created on: 06.02.2010 * Author: c.groupe */ #include <iostream> #include <string> using namespace std; class Artikel { public: char Namen[16+1]; // +1 Nullzeichen '\0' double Einkaufspreis; long Anzahl; virtual double Verkaufspreis() =0; }; enum MaterialTyp { Stahl =1, Alu }; class Felge : public Artikel { public: MaterialTyp Material; virtual double Verkaufspreis(); }; class Reifen : public Artikel { public: char Dimension[8+1]; // +1 Nullzeichen '\0' virtual double Verkaufspreis(); }; class Rad : public Artikel { public: virtual double Verkaufspreis(); private: Felge felge; Reifen reifen; }; double Felge::Verkaufspreis() { return Einkaufspreis * 1.5; } double Reifen::Verkaufspreis() { return Einkaufspreis * 1.3; } double Rad::Verkaufspreis() { return ( felge.Verkaufspreis()+reifen.Verkaufspreis() )*0.9; } int main() { Artikel* artikel[3]; artikel[0] = new Felge(); artikel[1] = new Reifen(); artikel[2] = new Rad(); const string art [ ] = {"Felge", "Reifen", "Rad" }; for (int i = 0; i < 3 ; i++) { cout << "Verkaufspreis von " << art[i] << ": " << artikel[i]->Verkaufspreis() << endl; delete artikel[i]; } return 0; }
-
Was geht denn nicht?
-
Da sind Rechtschreibfehler drin.
-
wx++ schrieb:
Was geht denn nicht?
..\src\Reifenhandel.cpp:39: error: cannot declare field `Rad::reifen' to be of type `Reifen'
..\src\Reifenhandel.cpp:39: error: because the following virtual functions are abstract:
..\src\Reifenhandel.cpp:19: error: virtual double Artikel::Verkaufspreis()
..\src\Reifenhandel.cpp:53: error: no `double Reifen::Verkaufspreis()' member function declared in class `Reifen'
..\src\Reifenhandel.cpp:57: error: no `double Rad::Verkaufspreis()' member function declared in class `Rad'
..\src\Reifenhandel.cpp: In functionint main()': ..\\src\\Reifenhandel.cpp:66: error: cannot allocate an object of typeReifen'
..\src\Reifenhandel.cpp:66: error: since typeReifen' has abstract virtual functions ..\\src\\Reifenhandel.cpp:67: error: cannot allocate an object of typeRad'
..\src\Reifenhandel.cpp:67: error: because the following virtual functions are abstract:
..\src\Reifenhandel.cpp:19: error: virtual double Artikel::Verkaufspreis()
-
Zeus schrieb:
Da sind Rechtschreibfehler drin.
omg, sry