 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Torsten Mohr Guest
|
Posted: Mon Nov 03, 2003 7:51 pm Post subject: Klassendeklaration auf mehrere Dateien verteilen? |
|
|
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
|
Posted: Tue Nov 04, 2003 1:41 am Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? |
|
|
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
|
Posted: Tue Nov 04, 2003 6:22 am Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? |
|
|
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
|
Posted: Tue Nov 04, 2003 11:23 am Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? |
|
|
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
|
Posted: Tue Nov 04, 2003 2:33 pm Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? |
|
|
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
|
Posted: Tue Nov 04, 2003 3:37 pm Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? |
|
|
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
|
Posted: Tue Nov 04, 2003 6:01 pm Post subject: Re: Klassendeklaration auf mehrere Dateien verteilen? |
|
|
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 |
|
 |
|
|
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
|
|