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

16.11.2018, 16:30

C++ Klassenproblem

Hey,
ich habe nur eine kurze Frage.
Kann man in C++ ein Objekt einer Klasse in einer anderen Klasse erstellen?
Falls ja, dann habe ich einen seltsamen Compilerfehler und falls nein, dann muss ich mir halt was Neues ausdenken. :)
LG

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

2

16.11.2018, 16:37

Ja kann man.

3

16.11.2018, 16:59

Okay, dann kurz mein Problem:

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
//Game.h
//anderes include
#include "Player.h"

class Game
{
public:
    Game();
    Player player1;
// andere Funktionen, unter anderem einbindung von gamestates

};

//Player.h
class Player
{
public:

    Player();
    ~Player();
//verschiedenste Funktionen, die an sich alle funktionieren (natürlich noch optimiert werden müssen...)
};

ergibt den Fehler:

"player1":
Unbekannter Überschreibungsspezifierer
und
[...] int wird angenommen [...]

Woran kann das liegen? Seltsam ist auch, dass ich ein Backup habe, bei dem genau das schon funktioniert hat.
Obwohl ich danach weder an Game.h noch an Player.h etwas geändert hat, gab es später wieder den beschriebenen Fehler.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Turtoise« (16.11.2018, 17:32)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

16.11.2018, 19:21

Kann es sein dass dein Player.h selbst wieder Game.h included? ;)

5

16.11.2018, 20:09

Tatsache, nachdem ich das berichtigt hab, ging es wieder. :)
Aber wie kamst du von der Fehlermeldung eigentlich darauf? Ich verstehe noch nicht ganz, warum das in dem Fehler resultiert hat.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

16.11.2018, 21:44

Bei unbekannten Typen wird gern int angenommen. Unbekannt passiert, wenn ein Include fehlt oder durch zirkuläre Includes und Include-Guards ignoriert wird. Zirkuläre Abhängigkeiten (auch logischer Natur, nicht nur in physischer Ausprägung durch Header) solltest du vermeiden. Die sind meist unlogisch und machen am Ende nur Ärger.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

7

16.11.2018, 22:45

Alles klar, danke euch.

Werbeanzeige