000
28.12.2014, 14:40 Uhr
~faberpaper
Gast
|
Hi Leute,
momentan sitze ich vor folgendem Problem: *Ich habe eine abstrakte baseclass, die nur eine schnittstellenklasse ist und daher pure virtuelle Funktionen ohne Implementierung anbietet: Ich habe hierzu auch nur eine header datei mit folgendem Code class CCodec { public: virtual void write(ostream &stream, const vector<CWaypoint> &waypoints, const vector<CPOI*> &pois) = 0; virtual void read(vector<CWaypoint> &waypoints, vector <CPOI> &pois, istream &stream) =0; virtual ~CCodec(){}; };
*jetzt habe ich eine abgeleitete klasse mit genau denselben methoden: //header datei class CIndentCodec:public CCodec { public: void write(ostream &stream, const vector<CWaypoint> &waypoints, const vector<CPOI*> &pois); void read(vector<CWaypoint> &waypoints, vector <CPOI*> &pois, istream &stream); ~CIndentCodec(){}; };
void CIndentCodec::write(ostream &stream, const vector<CWaypoint> &waypoints, const vector<CPOI*> &pois) { cout <<"test"; } //cpp file void CIndentCodec::read(vector<CWaypoint> &waypoints, vector<CPOI*> &pois,istream &stream) { cout << "test"; }
Die Methoden machen im Moment nur aus Probiergründen eine einfache Ausgabe. In meinem Hauptprogramm (ist in dem Fall ein anderes cpp file) habe ich dann folgendes: * CCodec *base = new CIndentCodec; So steht es in der Literatur, funktioniert aber nicht. Ferner geht auch der Befehl CIndentCodec coder; nicht. Bei beiden erhalte ich folgende Fehlermeldung: ..\myCode\CNavigationSystem.cpp:34:21: error: cannot allocate an object of abstract type 'CIndentCodec'
Ich bin da jetzt echt ein wenig ratlos, weil so etwas "einfaches" nicht geht und komme nicht weiter. Könnte mir bitte jemand helfen?
Danke und viele Grüße faberpaper |