direkt auf statische klassenelemente zugreifen
-
class test{public: static void func();}; test::func() func()//<-das will ich
vergleichbar mit
with test
.func
end with
in vbgibts da irgendne möglichkeit abzukürzen damit man nich jedesmal den ganzen klassennamen schreiben muss?
-
Ich denke das Stichwort Namespace könnte dir weiterhelfen.
-
namespace hat mit statischen Methoden recht wenig zu tun.
Mir ist (außer einem Makro) keine sinnvolle Lösung bekannt. Woher soll der Compiler denn wissen, dass er func() in der Klasse test suchen soll?
-
er soll einfach alle klasen durchsuchen :p
-
Vielleicht kannst Du func einfach aus der Klasse rausnehmen und so mitliefern?
Dann hätte sich das Problem auch erledigt.MfG Jester
-
ne ich will einerseits ne schnelle schreibweise und andererseits ne möglichkeit zum nachschaun falls ich den namen vergesse
im globalen namespace findet man ja nix
-
Ja dann deklarier sie eben Global inner seperaten .h Datei.
Dann brauchst du nur schnell mal in die .h schaun, oder wenn du einen "besseren" Compiler benutzt, reicht ein Blick auf die Baumansicht in den Globalen Elementen.
-
das hilft mir ned viel wenn ich erstmal n paar hundert header hab
-
Funktionspointer?
Könnte klappen
-
wie meinst du das
schreib mal bitte n kleines beispiel
-
namespace
-
???
-
Okay, dann ausführlicher:
Benutze einen Namespace.
-
willst du leserlichen code schreiben oder net. was ist überhaupt das problem. es gibt auch ctags.
schon mal daran gedacht das es stat. methoden geben kann, die denselben namen besitzen. und bei tausend headers steigt die wahrscheinlichkeit.
-
class test{public: static void func();}; test::func() func()//<-das will ich
Funktionspointer?
Könnte klappen
wie meinst du das
schreib mal bitte n kleines beispielvoid (*func)() = &test::func(); func();
namespace
???
namespace Foo { void func() { ... } } ... using Foo::func; func(); // tada
-
was namespaces angeht
using namespace a;
using namespace b;
using namespace c;wenn ichs richtig sehe is jetzt nur c aktiv
das endet letztendlich nur im chaosfunktionspointer probier ich mal aus
-
Sovok schrieb:
wenn ichs richtig sehe is jetzt nur c aktiv
Du siehst es nicht richtig.
-
MFK schrieb:
Sovok schrieb:
wenn ichs richtig sehe is jetzt nur c aktiv
Du siehst es nicht richtig.
echt?
wie macht mans dann rückgängig?
unusing namespace a?
-
Man kann das nicht immer rückgängig machen. Eine using-Direktive gilt immer ein einem Scope, und wenn das gerade der globale Namensraum ist, dann ist eben dort Ende, wo dieser "endet"
Anders wär es aber hier:namespace a { int b; } int foo() { using namespace a; b = 5; // ok } int bar() { b = 10; // nicht ok, muss a::b heißen }