C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Klassendeklaration auf mehrere Dateien verteilen?

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Torsten Mohr
Guest





PostPosted: Mon Nov 03, 2003 7:51 pm    Post subject: Klassendeklaration auf mehrere Dateien verteilen? Reply with quote



Hallo,

kann ich die Deklaration einer Klasse auf mehrere Dateien
verteilen (ohne #include zu verwenden)? Ich möchte die
wesentlichen Deklarationen von langen Aufzählungen von "enum"s
trennen.


Danke für Tipps,
Torsten.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Kostka, Volkmar
Guest





PostPosted: Tue Nov 04, 2003 1:41 am    Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? Reply with quote




Hallo,

Torsten Mohr wrote:
Quote:
Hallo,

kann ich die Deklaration einer Klasse auf mehrere Dateien
verteilen (ohne #include zu verwenden)? Ich möchte die
wesentlichen Deklarationen von langen Aufzählungen von "enum"s
trennen.


Nein.
Du kannst nur Deklaration und Definition trennen, was sich aber nur auf
die Implementation der Memberfunktionen bezieht. Enums gehoeren zur
Deklaration und muessen daher bei der Klassendeklaration angegeben
werden.

Wenn du die enums nur in der Definition benoetigst, koennstest du die
enums in eine extra Klasse auslagern, die dann auch in einer Extradatei
deklariert werden kann. Benoetigst du sie als Parametertypen, so koennte
hier eine Vorwaertsdeklaration ausreichen.

Beispiel:

in enum.h:
class MyEnums {
public:
enum Values { v1 ... };
};

in myclass.h:

class MyEnum;

class MyClass {
void AnyFunction(MyEnum&);
};

in myclass.cpp:
#include "enum.h"
#inlcude "myclass.h"

void MyClass::AnyFunction(MyEnum& e)
{
if (e == MyEnum::Values::v1)
...
}

Just an idea ...

MFG

Volkmar Kostka

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Markus Breuer
Guest





PostPosted: Tue Nov 04, 2003 6:22 am    Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? Reply with quote



Torsten Mohr schrieb:
Quote:
Hallo,

kann ich die Deklaration einer Klasse auf mehrere Dateien
verteilen (ohne #include zu verwenden)? Ich möchte die
wesentlichen Deklarationen von langen Aufzählungen von "enum"s
trennen.

Du benötigst einen Namespace, dann kannst du (eingeschränkt) ohne
includes arbeiten. Beispiel:

enum BEISPIEL { WERT1 };

void foo();
void bar( BEISPIEL _wert );

wird dann zu:

datei1.h:
namespace MyNamespace {
enum BEISPIEL { WERT1 };
void bar( BEISPIEL _wert );
};

datei2.h:
namespace MyNamespace {
void foo();
}

Gruß Markus

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Stefan Reuther
Guest





PostPosted: Tue Nov 04, 2003 11:23 am    Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? Reply with quote

Torsten Mohr <tmohr@s.netic.de> wrote:
Quote:
kann ich die Deklaration einer Klasse auf mehrere Dateien
verteilen (ohne #include zu verwenden)? Ich möchte die
wesentlichen Deklarationen von langen Aufzählungen von "enum"s
trennen.

Du könntest eine Klasse nur für die enums machen.

// types.h
class FooTypes {
public:
enum Bernd { ... };
enum Briegel { ... };
enum Chili { ... };
};


// class.h
#include "types.h"

class FooClass : public FooTypes {
void ding(Bernd b) { ... }
};


Das ist generell eine gute Idee falls du die Typen in mehreren
nicht verwandten Klassen benötigst.


Stefan

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Daniel Albuschat
Guest





PostPosted: Tue Nov 04, 2003 2:33 pm    Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? Reply with quote

Stefan Reuther wrote:
[snip]
Quote:
Du könntest eine Klasse nur für die enums machen.
[snip]


IMHO waere ein Namespace sinniger, wenn er eh nur Enums enthaelt.

Daniel Albuschat

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Stefan Reuther
Guest





PostPosted: Tue Nov 04, 2003 3:37 pm    Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? Reply with quote

Daniel Albuschat <daniel (AT) viming (DOT) de> wrote:
Quote:
Stefan Reuther wrote:
[snip]
Du könntest eine Klasse nur für die enums machen.
[snip]

IMHO waere ein Namespace sinniger, wenn er eh nur Enums enthaelt.

Das kommt, wie immer, drauf an.

Wenn ich eine Klasse nehme, kann ich die Enums ansprechen, als
wenn es Member der Klasse wären. Das gefällt mir persönlich
besser als wenn ich einen dritten Namen lernen müßte, um an die
Enums ranzukommen.


Stefan

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Rolf Magnus
Guest





PostPosted: Tue Nov 04, 2003 6:01 pm    Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? Reply with quote

Reuther wrote:

Quote:
Daniel Albuschat <daniel (AT) viming (DOT) de> wrote:
Stefan Reuther wrote:
[snip]
Du könntest eine Klasse nur für die enums machen.
[snip]

IMHO waere ein Namespace sinniger, wenn er eh nur Enums enthaelt.

Das kommt, wie immer, drauf an.

Wenn ich eine Klasse nehme, kann ich die Enums ansprechen, als
wenn es Member der Klasse wären. Das gefällt mir persönlich
besser als wenn ich einen dritten Namen lernen müßte, um an die
Enums ranzukommen.

Nicht, wenn deine Klassen auch in dem Namespace sind.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.