Autor Thema: C++ Noob braucht Hilfe...  (Gelesen 916 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Spicy McHaggis

  • Hero
  • *****
  • Beiträge: 1.839
  • Geschlecht: Männlich
  • Username: Voodoo
C++ Noob braucht Hilfe...
« am: 13.08.2008 | 22:05 »
also ich... ;)

ich versuche in einer Klassen den Operator << zu überladen.
#include "stdafx.h"
using namespace std;
class Mitarbeiter 
{

private:
string nachname, vorname;
int Geburtstag, Geburtsmonat, Geburtsjahr;

public:
Mitarbeiter();
Mitarbeiter(string vorname, string nachname, int tag, int monat, int jahr);

friend ostream &operator << (ostream &os, Mitarbeiter &m);

virtual ~Mitarbeiter();
};
Der Rumpf sieht dann so aus...
// Mitarbeiter.cpp: Implementierung der Klasse Mitarbeiter.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Mitarbeiter.h"

//////////////////////////////////////////////////////////////////////
// Konstruktion/Destruktion
//////////////////////////////////////////////////////////////////////

Mitarbeiter::Mitarbeiter()
{}

Mitarbeiter::Mitarbeiter(string vorname, string nachname, int tag, int monat, int jahr)
{
this->vorname=vorname;
this->nachname=nachname;
if((tag < 1) || (tag > 31))
{
this->Geburtstag=1;
}
else
{
this->Geburtstag=tag;
}
if((monat < 1)||(monat > 12))
{
this->Geburtsmonat=1;
}
else
{
this->Geburtsmonat=monat;
}
this->Geburtsjahr=jahr;
}

ostream &operator <<(ostream &os, Mitarbeiter m)
{
os << m.vorname << " " << m.nachname << " Geburtstag: " << m.Geburtstag << "." << m.Geburtsmonat;
return os;
}
Mitarbeiter::~Mitarbeiter()
{}

Trotz der Friend - Deklaration kriege ich eine Compilermeldung, dass nicht auf die privaten Elemente von Mitarbeiter zugegriffen werden könnte. Was mache ich falsch? :-\

« Letzte Änderung: 13.08.2008 | 22:07 von Spicy McHaggis »
"Neugier ist die Mutter der Weisheit"

Offline Haukrinn

  • BÖRK-Ziege
  • Mythos
  • ********
  • Jetzt auch mit Bart!
  • Beiträge: 11.698
  • Geschlecht: Männlich
  • Username: haukrinn
Re: C++ Noob braucht Hilfe...
« Antwort #1 am: 13.08.2008 | 22:07 »
Du Spaßvogel hast ein & vergessen. Schau mal genau hin...  ;)
What were you doing at a volcano? - Action geology!

Most people work long, hard hours at jobs they hate that enable them to buy things they don't need to impress people they don't like.

Offline Spicy McHaggis

  • Hero
  • *****
  • Beiträge: 1.839
  • Geschlecht: Männlich
  • Username: Voodoo
Re: C++ Noob braucht Hilfe...
« Antwort #2 am: 13.08.2008 | 22:11 »
hmmm... meinst du (...,Mitarbeiter &m) ?

Das hab ich gerade behoben, gibt aber immer noch die selben Fehler...

Mitarbeiter.cpp(48) : error C2248: "vorname" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "Mitarbeiter" erfolgte mitarbeiter.h(19) : Siehe Deklaration von 'vorname'
Mitarbeiter.cpp(48) : error C2248: "nachname" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "Mitarbeiter" erfolgte
mitarbeiter.h(19) : Siehe Deklaration von 'nachname'
Mitarbeiter.cpp(48) : error C2248: "Geburtstag" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "Mitarbeiter" erfolgte
mitarbeiter.h(20) : Siehe Deklaration von 'Geburtstag'
Mitarbeiter.cpp(48) : error C2248: "Geburtsmonat" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "Mitarbeiter" erfolgte
 mitarbeiter.h(20) : Siehe Deklaration von 'Geburtsmonat'
« Letzte Änderung: 13.08.2008 | 22:14 von Spicy McHaggis »
"Neugier ist die Mutter der Weisheit"

Offline Haukrinn

  • BÖRK-Ziege
  • Mythos
  • ********
  • Jetzt auch mit Bart!
  • Beiträge: 11.698
  • Geschlecht: Männlich
  • Username: haukrinn
Re: C++ Noob braucht Hilfe...
« Antwort #3 am: 13.08.2008 | 22:19 »
Glaube ich dir nicht. Bei mir läufts, habe ich gerade ausprobiert.

PS: Nimm mal das stdafx.h aus der Headerdatei raus, das hat da nämlich so überhaupt nix zu suchen.
What were you doing at a volcano? - Action geology!

Most people work long, hard hours at jobs they hate that enable them to buy things they don't need to impress people they don't like.

Offline Spicy McHaggis

  • Hero
  • *****
  • Beiträge: 1.839
  • Geschlecht: Männlich
  • Username: Voodoo
Re: C++ Noob braucht Hilfe...
« Antwort #4 am: 13.08.2008 | 22:30 »
Unter Visual Studio 6.0 will er nach wie vor nicht, aber unter Dev-C++ gehts... danke! :)
"Neugier ist die Mutter der Weisheit"