using class X



  • Hallo,
    gibt es ein Äquivalent von using namespace whatever; für Klassen?

    // HPP
    class Foo
    {
        typedef double verstecktes_double;
        verstecktes_double foomethod();
    };
    
    // CPP
    
    Foo::verstecktes_double Foo::foomethod() // soll ohne das erste "Foo::" möglich sein
    {return 42.0};
    


  • Wurst schrieb:

    Hallo,
    gibt es ein Äquivalent von using namespace whatever; für Klassen?

    Ja, typedef. Allerdings nicht für diesen speziellen Fall, weil verstecktes_double private ist.

    in C++0x kannst du durch die neue Deklarationssyntax den Ergebnistypen verzögern, so dass der Kontext und damit der Typ klar ist:

    //typedef Foo::verstecktes_double verstecktes_double; //tut nicht für private
    auto Foo::foomethod() -> verstecktes_double
    {return 42.0;}
    


  • Ja, typedef.

    Meinst du, ich muss das typedef public machen, damit es funktioniert?

    in C++0x kannst du durch die neue Deklarationssyntax den Ergebnistypen verzögern, so dass der Kontext und damit der Typ klar ist:

    Ne, auto find ich schrecklich. Außer vielleicht bei Iteratoren.



  • [quote="Wurst"]

    Ja, typedef.

    Meinst du, ich muss das typedef public machen, damit es funktioniert?

    Ja. Deine Tippfaulheit wäre allerdings kein triftiger Grund dafür 😉

    Wenn Foo in wirklichkeit ein langer Klassenname ist und in zig namespaces geschachtelt ist, geht aber folgendes:

    //Header
    namespace some_namespace_1 {
    namespace some_intermediate_namespace {
    namespace some_inner_namespace {
    
    class MyClassHasSomeVeryLongNameINeverWannaTypeCompletely
    {
       typedef double verstecktes_double;
       verstecktes_double foomethod();
    };
    
    }}} //end namespaces
    
    //CPP
    
    typedef some_namespace_1::some_intermediate_namespace::some_inner_namespace::MyClassHasSomeVeryLongNameINeverWannaTypeCompletely TheClass;
    
    TheClass::verstecktes_double TheClass::foomethod()
    {
      return 42;
    }
    


  • Ja. Deine Tippfaulheit wäre allerdings kein triftiger Grund dafür 😉

    Schon klar 🙂

    Naja, dann muss ich meine Faulheit halt überwinden 😞
    Aber dennoch danke für die Antwort(en).



  • Wurst schrieb:

    Ne, auto find ich schrecklich. Außer vielleicht bei Iteratoren.

    Es gibt nunmal Fälle, in denen der Returntyp von den Parametertypen abhängt. Aber frag mich jetzt nicht welche, aus dem Stehgreif heraus kann ich solche Beispiele nicht konstruieren.



  • Steh! Greif, vermaledeiter!


Anmelden zum Antworten