[C++] Vererbungsproblem

04/11/2012 00:52 ColdFreezer#1
Wie bereits im Titel geschrieben habe ich ein Problem mit der Vererbung in C++

Object.hpp
Code:
#ifndef OBJECT_HPP
#define OBJECT_HPP
#include<SFML/System.hpp>
#include<SFML/Window.hpp>
#include<SFML/Graphics.hpp>
#include"MainResources.hpp"

class Object : public sf::Sprite{
private:[INDENT]float Temperature;
float Contamination;
sf::Vector2f Size;
sf::IntRect Area;
[/INDENT]public:[INDENT]void SetTemperature(float Temperature);
void SetContamination(float Contamination);
void SetSize(sf::Vector2f Size);
float *GetTemperature();
float *GetContamination();
sf::Vector2f *GetSize();
void ComputeScale();
void ComputeArea();
sf::IntRect *GetArea();
[/INDENT]};

#endif // OBJECT_HPP


Person.hpp

Code:
#ifndef PERSON_HPP
#define PERSON_HPP
#include<SFML/System.hpp>
#include<SFML/Window.hpp>
#include<SFML/Graphics.hpp>
#include"Object.hpp"

class Person : public Object{
private:[INDENT]int Health;
int Stamina;
int Magicka;
sf::View Sight;
sf::IntRect SightArea;
[/INDENT]public:[INDENT]void SetHealth(int Health);
void SetStamina(int Stamina);
void SetMagicka(int Magicka);
int *GetHealth();
int *GetStamina();
int *GetMagicka();
[/INDENT]};

#endif // PERSON_HPP
Dabei bekomme ich immer folgende Fehlermeldung:
"Person.hpp:8: Fehler:expected class-name before '{' token"

Letztendlich konnte die Klasse "Object" ja auch von "sf::Sprite" erben.
Ich weiß einfach nicht was ich falsch gemacht habe.

Danke im Voraus für die Hilfe
04/11/2012 00:59 xNopex#2
Code-Tags bitte und vernünftig einrücken. Danke.
04/11/2012 01:08 ColdFreezer#3
Quote:
Originally Posted by xNopex View Post
Code-Tags bitte und vernünftig einrücken. Danke.
Okay ich habe jetzt den Code jetzt eingerückt. Kannst du mir bitte kurz sagen was du mit "Code-Tags" meinst? Weiß nicht was das ist/was du damit meinst

Edit: Ich habe jetzt auch die Codeform gemacht, glaube du hast das gemeint
04/11/2012 01:54 MrSm!th#4
Liegt Object vielleicht ungewollt in einem Namespace?
04/11/2012 01:58 ColdFreezer#5
Quote:
Originally Posted by MrSm!th View Post
Liegt Object vielleicht ungewollt in einem Namespace?
Nein, die Klasse ist in keinem Namespace
04/11/2012 02:11 Nightblizard#6
{ gehört in eine eigene Zeile. Tu es und es wird funktionieren!:p

Was ich spontan versuchen würde:
Schauen, ob sf::Sprite überhaupt bekannt ist
:: vor Object schreiben.
Object in ein namespace packen und es dann darüber ansprechen.
Schauen, ob sich was im Kreis inkludiert.
04/11/2012 02:28 ColdFreezer#7
Danke an alle, mein Programm funktioniert jetzt fehlerfrei :D

Anscheinend hat sich irgendetwas im Kreis inkludiert @Nightblizard: Danke für den Tipp
04/11/2012 21:48 MrSm!th#8
Dann hättest du aber schon ne Meldung bekommen müssen, dass die maximale Include-Tiefe erreicht ist.
04/12/2012 00:04 Tyrar#9
Quote:
Originally Posted by MrSm!th View Post
Dann hättest du aber schon ne Meldung bekommen müssen, dass die maximale Include-Tiefe erreicht ist.
gcc gibt meine ich nur aus dass etwas nicht definiert ist. kann auch nen anderer compiler sein