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

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

11

21.02.2009, 16:59

Aber dann kannst du keine Ableitung machen.. :roll:

Zeig doch mal bitte nochmal die genaue Struktur wie du es jetzt hast..

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

12

21.02.2009, 17:05

also:
main.cpp includiert main.h
main.h includiert iostream, Animal.h und Runner.h

Animal.h sieht jetzt so aus:

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
/***********************************
**     ANIMAL.H
**     ========
**
**     Deklaration der Animal-Klasse
**
************************************
*/

class Animal
{
    private:
        int x;
        int y;
    public:
        // Konstruktor

        Animal(int, int);

        // Destruktor

        ~Animal();

        // Methoden

        int Run();
        int Turn(int);
};

Runner.h sieht jetzt so aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/***********************************
**     RUNNER.H
**     ========
**
**     Deklaration der Runner-Klasse
**
************************************
*/
class Runner : public Animal
{
    public:
        // Konstruktor

        Runner(int, int);

        // Destruktor

        ~Runner();

        // Zusätzliche Methoden

        int Run(int iSteps);
};

Der Compiler zeigt keinen Fehler an.
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

13

21.02.2009, 17:11

Ja, weil du Glück hast, dass Animal in der main.h vor Runner.h inkludiert wird. ;)

Wenn du Runner.h in einer anderen Datei inkludieren willst, dann wirst du da einen Fehler bekommen, dass der Compiler Animal nicht finden kann, respektive den Fehler, den du oben schon mal hattest.

Wenn du da brav include Guards machst, kannst du in Runner.h Animal.h inkludieren und dann geht das auch in anderen Dateien, auch wenn du da Animal.h nicht direkt includest.

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

14

21.02.2009, 17:14

achso, ja mit include guards hatte ich mich noch nicht beschäftigt. dann werde ich das jetzt mal tun ^^
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

15

21.02.2009, 17:23

ok, jetzt weiß ich wie man include guards benutzt. brauch ich dann eigentlich noch die Datei main.h?
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

16

21.02.2009, 17:25

Zitat von »"Phil239"«

ok, jetzt weiß ich wie man include guards benutzt. brauch ich dann eigentlich noch die Datei main.h?


Ist nicht üblich. Du kannst die includes auch direkt in die main.cpp machen..

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

17

21.02.2009, 17:32

also ich hab jetzt noch eine klasse in einer extra datei namens eater, die von runner abgeleitet ist, erstellt (auch in main.h included). wenn ich jetzt ohne include guards in der runner.h compiliere gehts auch (also ohne fehler). ich dachte nich?
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

18

21.02.2009, 17:57

Kommt drauf an, wie die abhängigkeiten aussehen. Es kann gut gehen. Aber sobald du ein paar Dateien mehr hast brauchst du include Guards in der Regel.

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

19

21.02.2009, 18:01

achso, danke :D
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

20

21.02.2009, 19:39

Zitat von »"Phil239"«

PS: wo kann ich das bei Code:Blocks einstellen?

falls dus noch nicht gefunden hast: new->File..., dann C/C++-Header, und im folgendne dialog sollte automatisch ein feld "Include guard word" sein, das dort angegebene Makro wird für den automatisch genreierten include guard benutzt - normalerweise passt das, was codeblocks da selbst reinschreibt, ganz gut

Werbeanzeige