Zum Inhalt springen

Problem mit Klasseneinbindung


S. Bauermann

Empfohlene Beiträge

Hi,

ich habe per Konsole ein Programm gebastelt zur Berechnung von Brüchen. Das ganze halt mit Klassen. Nun wollte ich das Proggy als MFC Windows Programm portieren. Ich habe die Header Datei und die cpp Datei eingebunden und bekomme jetzt diese Fehlermeldung: "fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei". Meine Header Datei: #include <iostream.h>

#include "stdafx.h"

class ratio{

private:

int z;

int n;

void rkuerzen();

public:

ratio(const ratio&);

ratio& operator = (ratio&);

ratio(int za=0, int na=1);

~ratio();

//void print();

ratio operator+(ratio&);

ratio operator-(ratio&);

ratio operator/(ratio&);

ratio operator*(ratio&);

bool setratio(int za, int na);

friend ostream& operator<<(ostream& o, ratio & r); //Friendfunktion

friend istream& operator>>(istream& i, ratio & r); //Friendfunktion

};

Meine cpp Datei:

#include "cratio.h"

/*void ratio: :print(){

cout<<z;

cout<<'/';

cout<<n<<" ";

}*/

bool ratio::setratio(int za,int na){

z=za;

if(na==0)

return false; //Nenner ist 0 - Fehler

else{

n=na;

rkuerzen(); /*direkter Aufruf mit interner Bindung zu dem Objekt,

welches setratio gerufen hat*/

return true; //Alles OK

}

}

ratio & ratio: :operator =(ratio& op2){

z=op2.z;

n=op2.n;

return(*this);

}

ratio ratio: :operator + (ratio& op2){

ratio erg;

erg.z=z * op2.n + op2.z * n;

erg.n=n * op2.n;

erg.rkuerzen();

return erg;

}

ratio ratio: :operator - (ratio& op2){

ratio erg;

erg.z=z * op2.n - op2.z * n;

erg.n=n * op2.n;

erg.rkuerzen();

return erg;

}

ratio ratio: :operator * (ratio& op2){

ratio erg;

erg.z=z * op2.z;

erg.n=n * op2.n;

erg.rkuerzen();

return erg;

}

ratio ratio: :operator / (ratio& op2){

ratio erg;

erg.z=z * op2.n;

erg.n=n * op2.z;

erg.rkuerzen();

return erg;

}

int absB(int zahl){

if(zahl<0)

return (-zahl);

else

return(zahl);

}

void ratio::rkuerzen(){

int gmt, teiler;

if(n<0){

z=-z;

n=absB(n);

}

if(z==0)

n=1;

if (absB(z)<absB(n))

gmt=absB(z);

else

gmt=absB(n);

for(teiler=2;teiler<=gmt;teiler++){

if((z%teiler==0)&&(n%teiler==0)){

z=z/teiler;

n=n/teiler;

teiler--;

}

}

}

ostream& operator <<(ostream& o, ratio & r){

o<< r.z <<'/'<< r.n;

return o;

}

istream& operator>>(istream& i, ratio & r){

int a,b;

cout<<"Eingabe Zaehler: ";

i>>a;

do{

cout<<"Eingabe Nenner: ";

i>>b;

}while (!r.setratio(a,B));

return i;

}

ratio::ratio(int za, int na){

z=za;

n=na;

rkuerzen();

}

ratio::~ratio(){

}

ratio::ratio(const ratio&ob){

z=ob.z;

n=ob.n;

}

Danke für die Hilfe.

Gruß Sven

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das #include "stdafx.h" muss aus der Headerdatei raus und in die cpp-Datei rein.

Falls das nicht hilft:

(Hab's hier leider nur auf Englisch, also nagel mich nicht auf die genauen Worte fest)

Projekt->Einstellungen->(Deine cpp-Datei auswählen)->Register "C/C++".

In der Listbox "vorkompilierte Header" auswählen, dann den ersten Punkt ("nicht benutzen") auswählen.

Ach ja, #include "stdafx.h" sollte immer vor allen anderen #includes stehen

<FONT COLOR="#a62a2a" SIZE="1">[ 16. November 2001 09:27: Beitrag 4 mal editiert, zuletzt von Klotzkopp ]</font>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...