Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Syntaxfehler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.08.2005, 21:03 Uhr
~HobbyCppler
Gast


Hallo zusammen,

ich habe eine Klasse ObjectB, die von BaseObject erbt.
Das kompiliert er auch.
Dann habe ich eine zweite Klasse ObjectA, die ebenfalls
von BaseObject erbt und zur Vereinfachung des Problems
nur einen parameterlosen Konstruktor und einen virtuellen
Destruktor hat. Auch so kompiliert er. Danach leite ich
ObjectB nicht mehr von BaseObject ab, sondern von ObjectA.
Zudem änder ich den include auf die entsprechende Klasse.
Jetzt schmeißt der Compiler in der Zeile

class ObjectB : public ObjectA{

einen Syntaxerror und zahlreiche Folgefehler.

Es liegt wohl auch nicht an einem überkreuz include, da die
Ursprungsversion auch mit dem zusätzlichen include functioniert.

Kann mir da jemand weiterhelfen?

Gruß,
HobbyCppler
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.08.2005, 21:42 Uhr
Pablo
Supertux
(Operator)


Ohne Code und ohne genaue Fehler können wir nichts damit anfangen, Hellseher sind wir leider nicht. Vielleicht ein Semikolon irgendwo vergessen?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 19.08.2005 um 21:42 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.08.2005, 22:33 Uhr
~HobbyCppler
Gast


Ich denke der Header reicht, oder?


----------------------------------------------------------------------------------------------------------

Hier erstmal die Fehlermeldung:

*/home/LSpille/projects/cspille/src/sstring.h:12: error: syntax error before `{' token
*/home/LSpille/projects/cspille/src/sstring.h:15: error: destructors must be member functions
*/home/LSpille/projects/cspille/src/sstring.h:15: error: virtual outside class declaration
*/home/LSpille/projects/cspille/src/sstring.h:17: error: virtual outside class declaration
*/home/LSpille/projects/cspille/src/sstring.h:19: error: syntax error before ` private'
*/home/LSpille/projects/cspille/src/sstring.h:29: error: syntax error before ` public'
*/home/LSpille/projects/cspille/src/sstring.h:31: error: syntax error before `(' token


C++:
#ifndef SSTRING_H
#define SSTRING_H

#include "sobject.h"
//#include "sserializable.h"

class SString : public SObject /* bzw. SSerializable*/ {
public:
    SString(const char* str);
    virtual ~SString();
    const char* chars();
    virtual unsigned int length();

private:
    const char *string;
    unsigned int len;

// members of SObject
public:
    virtual SClass* getClass();
    virtual SString toString();

public:
    static SClass* clazz;
};

#endif



----------------------------------------------------------------------------------------------------------


C++:
#ifndef SSERIALIZABLE_H
#define SSERIALIZABLE_H

#include "sobject.h"

class SSerializable : public SObject {
public:
    SSerializable();
    virtual ~SSerializable();

// members of SObject
public:
    virtual SClass* getClass();
    static SClass* clazz;

};

#endif



----------------------------------------------------------------------------------------------------------


C++:
#ifndef SOBJECT_H
#define SOBJECT_H

class SClass;
class SString;

class SObject {
public:
    SObject();
    virtual ~SObject();
    virtual SClass* getClass();
    virtual SString toString();
    
    static SClass* clazz;
};

#include "sclass.h"
#include "sstring.h"

#endif

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.08.2005, 09:26 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du hast ne loop in den headern. Du bindest aus object.h wieder sstring.h ein, wodurch er in sstring.h dann trotzdem den typ SObject nicht kennt. lass dort den header raus (in object.h dann sollte es gehen
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.08.2005, 13:03 Uhr
~HobbyCppler
Gast


Hallo FloSoft,

du hast Recht, es war ein loop in den Headern, den ich eigentlich ausgeschlossen
habe
Allerdings konnte ich den include nicht einfach entfernen...

Ich hab jetzt nur noch die Basisklassen-includes in den Headern die restlichen in den
.cpp-Dateien.

Danke,
HobbyCppler
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.08.2005, 13:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat:

Ich hab jetzt nur noch die Basisklassen-includes in den Headern die restlichen in den
.cpp-Dateien.




jo so solls auch sein
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: