Forum: PC-Programmierung Cpp Programm gibt Fehlermeldungen


von Timo (Gast)


Lesenswert?

Hallo,


Meine .hh Datei:

#include <cstdlib>

using namespace std;

class Person
{
      public:

        void SetName(string PersonName);
        string GetName();
        void SetAge(unsigned int PersonAlter);
        unsigned int GetAge();
        void SetCountry(string PersonLand);
        string GetCountry();

      private:

        string name_;
        unsigned int age_;
        string country_;
};

Meine .cpp Datei:

#include "Person.hh"
#include <cstdlib>

using namespace std;

void Person::SetName (string PersonName)
{
  _name = PersonName;
}

string Person::GetName ()
{
  return _name;
}

void Person::SetAge (unsigned int PersonAlter)
{
  _age = PersonAlter;
}

unsigned int Person::GetAge ()
{
  return _age;
}

void Person::SetCountry (string PersonLand)
{
  _country = PersonLand;
}

string Person::GetCountry ()
{
  return _country;
}


Die Main Datei ist geschrieben aber noch nicht mit Inhalt gefüllt. 
Bekomme hier schon jede Menge Fehlermeldungen. Was mache ich falsch, 
danke :)

von Tobi H. (tobi-) Benutzerseite


Lesenswert?

Und die Fehlermeldungen?

von Timo (Gast)


Lesenswert?

does not name a type
invalid preprocessing directive #inlcude

 variable or field `SetName' declared void

 expected `;' before '(' token
 `string' does not name a type

von Timo (Gast)


Lesenswert?

Habe vergessen #include <string> einzubinden. Nun ist nur noch eine 
Fehlermeldung da:


invalid preprocessing directive #inlcude

von Tobi H. (tobi-) Benutzerseite


Lesenswert?

Die wirst du jetzt auch noch selbst hinbekommen. Einfach noch mal genau 
lesen was da steht

von Timo (Gast)


Lesenswert?

Misst, dass war ein Rechtschreibfehler... nun sind wieder andere Fehler 
aufgetaucht ..ich verzweifle

Z.B

`_name' undeclared (first use this function)

Habe es doch in die Klasse geschrieben :(

von Εrnst B. (ernst)


Lesenswert?

Nochmal genau schauen: hast du
1
_name
 oder
1
name_
 geschrieben?

von Timo (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe dass Programm mal in den Anhang gepackt. Wäre nett,wenn ihr mir 
helfen könntet und vorallem meinen Fehler erklären

von Tobi H. (tobi-) Benutzerseite


Lesenswert?

Oben gibt es kein Attribut _name in der Klassendefinition. Einmal ist 
der _ vor dem Namen, mal nachher. Mach das einheitlich, dann klappt es 
auch

von Timo (Gast)


Lesenswert?

DANKE

von Timo (Gast)


Lesenswert?

Nun habe ich eine abgeleitete Klasse:


class Player : Person                   // Abgeleitete Klasse: Player
{
      private:

        void SetPosition(char SpielerPosition);
...


Ich möchtet nun im Cpp File die Funktion SetPosition (char 
SpielerPosition) definieren.

- Dazu binde ich in das File Player.ccp den Header Player.hh ein.
- Nun schreibe ich ..... Person :: Player :: SetPosition (char 
SpielerPosition)
{ ...
}

Ist dass richtig?

von Timo (Gast)


Lesenswert?

Was heißt

10 C:\Dev-Cpp\Serie 7\Player.cpp expected primary-expression before 
"PersonName"

?

von Εrnst B. (ernst)


Lesenswert?

Sag mal, willst du dir nicht erstmal ein Anfänger-Tutorial zu C++ 
durchlesen?
Muss ja nicht gleich der Kerningham/Ritchie sein.

Mit neu nachfragen nach jeder geänderten Zeile und bei jedem 
Compilerfehler wird das für uns alle recht mühsam.


Zur Frage oben:

im Player.cpp:
1
 void Player::SetPosition (char SpielerPosition) {
2
   // tuwas.
3
 }
den Ganzen Vererbungsbaum musst du also nicht angeben.

von Rolf Magnus (Gast)


Lesenswert?

> Muss ja nicht gleich der Kerningham/Ritchie sein.

Der Mann heißt Kernighan und hat mit C++ nicht viel am Hut. Da würde 
eher der Stoustrup passen.

> Mit neu nachfragen nach jeder geänderten Zeile und bei jedem
> Compilerfehler wird das für uns alle recht mühsam.

Insbesondere, wenn man dann nur halbe Fehlermeldungen sieht, und die 
auch noch ohne dazugehörigen Code.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.