<< der Basisklasse aufrufen
-
Hi!
Ich hab ein (zumindest für mich) verzwicktes Problem.
Der Folgende Code liefert mir ein hübsches Fenster "Die Anweisung in 'xxx' verweist auf Speicher in '0x0000'. Der Vorgang "read" konnte nicht durchgeführt werden"char* pcGetText(void) { return NULL; } int main () { fstream outfile ("test.txt",ios::app); outfile << pcGetText; }In meiner Implementation der Standard Library wird beim Operator << ein strlen des Wertes (in meinem Fall NULL) gemacht. Das geht nicht gut.
Ich hab nun versucht eine Klasse von fstream abzuleiten und den Operator << zu überschreiben.
class myfstream : public fstream { public: friend myfstream& operator<<(myfstream& Fstr, const char * pcChar) { if (pcChar) { //Fstr << pcChar; Fstr.rdbuf()->sputn(pcChar, strlen(pcChar)); } else { //Fstr << "(NULL)"; Fstr.rdbuf()->sputn("(NULL)", strlen("(NULL)")); } return Fstr; } };Das funktioniert ja, aber ich möchte nun im << Operator der Klasse myfstream den Operator << der Basisklasse fstream aufrufen (den Teil im Code der Auskommentiert ist, statt der Zeile darunter verwenden).
<< macht ja mehr als nur den Aufruf von rdbuf.Kann mir da wer helfen?
-
Hilft dir der Function call auf die spruenge?
BaseClass::operator<<(object);
-
ne, so tuts leider auch nicht!