Du bist nicht angemeldet.

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 676

Beruf: Softwareentwickler

  • Private Nachricht senden

2

16.11.2018, 16:37

Ja kann man.
Software documentation is like sex. If it's good you want more, if it's bad it's better than nothing.

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 848

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 874

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