Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.10.2012, 12:23

Frage zu Kapitel 7 Aufgabe 3 Private Membervariablen

Hallo liebe "Lerngemeinschaft" :)

ich bin grade bei dem schönen Thema Klassen angekommen und bearbeite dazu grade die Aufgabe 3 mit dem Thema Private Membervariablen.
den Quelltext 1 zu 1 abschreiben im Buch kann ich und es funktioniert auch alles. Aber abschreiben kann ja jeder also will ich was eigenes machen und habe Versucht den Quellcode in unterschiedlichen Dateien zu packen. erstmal die 3 Dateien jetzt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//Kapitel_7_3.cpp

//C++ Programmierung
// Kapitel 7 Aufgabe 3
// <Private Member>

#include <iostream>
#include "Reiter.hpp"

using namespace std;

int main ()

{
    // Variablen

    CReiter Spieler; //Ein Reiter für jeden Spieler

    //Neue Koordinaten setzen
    Spieler.SetzePosition (150, 300);
    Spieler.SetzePosition (180, 620);

    return 0;
}


Teil2

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Reiter.hpp
// C++ Kapitel 7 Aufgabe3
// die Klassen werden in einer seperaten Header Datei erstellt



// Klassen erstellen
class CReiter
{
private:
    //Membervariablen

    int m_XPosition; //x-Position auf den Bildschirm
    int m_YPosition; //y-Position auf dem Bildschirm

    //Memberfunktion
public:
    void SetzePosition (const int X, const int Y);
    
};


und Teil 3

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//Reiter.cpp
// C++ Programmierung
// KApitel 7 Aufgabe 3
// Klassen in separater Datei

#include "Reiter.hpp"
#include <iostream>

using namespace std;
//Konstanten festlegen

const int Bildschirmbreite = 800;
const int Bildschirmhöhe = 600;

// Funktion Zeige Daten

// Aufgabe: Die Werte der Reiter ausgeben


void CReiter::SetzePosition (const int X, const int Y)
    {
        //Prüfen ob die Koordinaten Richtig sind
        if (X > 0 && X < Bildschirmbreite && Y > 0 && Y < Bildschirmhöhe)

        {
            // Wenn die Koordinaten passen
            m_XPosition = X;
            m_YPosition = Y;
        
        cout << "Neue Koordinaten gesetzt!" << endl;
        }
        else
        {
            //Sind die Koordinaten außerhalb des Bildes, gibt es eine Fehlermeldung
            cout << "Fehler: Koordinaten ausserhalb des Bereichs!" << endl;
        }
        cout << endl;
    
    } // SetzeKoordinaten


Sieht für mich alles gut aus, aber ich bekomme folgende Fehlermeldung:

\kapitel_7_3.cpp( 1 8 ) :error C2039: 'SetzePosition': Ist kein Element von 'CReiter'
\kapitel_7_3\reiter.hpp( 8 ) : Siehe Deklaration von 'CReiter'
\kapitel_7_3.cpp( 1 9): error C2039: 'SetzePosition': Ist kein Element von 'CReiter'
\kapitel_7_3\reiter.hpp( 8 ) : Siehe Deklaration von 'CReiter'

wo habe ich den Fehler? ich finde nix

hoffe mir kann jemand helfen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Barash« (26.10.2012, 13:07)


2

26.10.2012, 14:11

Dein Code den du hier gepostet hast, hat im Grunde keinen Fehler. Wenn ich mir den in mein VisualStudio 2010 kopiere, tritt der Fehler auch nicht auf. Ich würd vielleicht mal Testen, ein neues Projekt zu erstellen und den Code hier aus dem Thread mal reinzukopieren, ob der Fehler dann auch noch auftritt. Wäre einen Versuch Wert ob es dann geht. Ansonsten wüsste ich jetzt grad auch nicht woran es liegen könnte, da der Code ansich eigentlich funktioniert.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

26.10.2012, 14:26

Ich würde auch mal vermuten, dass die Headerdatei, die du denkst zu inkludieren, nicht die Datei ist, in die du deinen Code geschrieben hast. Check mal ab, welchen Pfad die tatsächlich inkludierte Datei hat (Rechtsklick auf das #include -> Datei öffnen und dann z.B. mit der Maus über dem Tab Reiter stehen bleiben und auf das Tooltip schaun)...

4

26.10.2012, 14:34

Danke dot, das war der entscheidene Hinweis. die beiden Reiter Dateien lagen in einen anderen Dateipfad vom vorherigen Kapitel und da gab es andere Bezeichnungen, deshalb hat das nicht funktioniert. Habe die beiden datei in den Richtigen Ordner kopiert und schon war alles Schick.

Werbeanzeige