Überladen vom Stream Operator "<<"
-
Hallo,
ich bin gerade dabei einen Stream Operator zu überladen:
Mein Problem ist, dass ich ein fixkomma.ccp und eine fixkomma.hpp Datei habe und nicht weiß wie das in den beiden auszusehen hat. Im Internet habe ich paar Sachen gefunden, aber komme damit nicht weiter.meine fixkomma.hpp:
#ifndef FIXKOMMA_HPP #define FIXKOMMA_HPP #include <iostream> #include <stdio.h> #include <stdlib.h> #include <cmath> using namespace std; class fixkomma{ private: long vk, nk; int anzVk, anzNk; public: //Konstruktoren fixkomma(); fixkomma(char *st_zahl); //Copy.Konstruktor fixkomma(const fixkomma &f); //Funktionen long *decode(char *st_zahl); bool isLegal(char *st_zahl); char *getNumber(long *longzahl); char *getChar(long a); int getLange(long a); //Ausgaben long getvk(); long getnk(); long getanzvk(); long getanznk(); friend ostream &operator <<(ostream &out_data,fixkomma &fix); }; #endif /* FIXKOMMA_HPP */ist das in der hpp Datei richtig? Wie muss das äquivalent in der cpp Datei aussehen? Muss die da überhaupt rein?
Gruß und Vielen Dank
POC
-
ist das in der hpp Datei richtig?
Eine Kleinigkeit: Mach aus Zeile 37
friend ostream &operator <<(ostream &out_data, fixkomma const& fix);Wie muss das äquivalent in der cpp Datei aussehen?
So:
ostream &operator <<(ostream &out_data, fixkomma const& fix) { out_data << /* Ausgeben ... */ return out_data; }Muss die da überhaupt rein?
Nein, "müssen" nicht. Sollte.
P.S.:
using namespace std;
In Headern ist eine ganz blöde Idee.