Objekt verstecken (oder so)



  • Ich möchte in meiner Hauptfunktion Funktionene verwenden die inline deklariert sind. Diese Inlinefunktionen verwenden Objekte die ich gerne in der Hauptfunktion erstecken würde.

    inline int Funktion()
    {
       return Objekt->GetInt();
    }
    

    ich habe es auch schon mit namespace versucht. Doch die Objekte waren trotzdem in der Hauptfunktion sichtbar.



  • Wenn ich dich richtig verrstanden hab, dann

    Klassen->private



  • Deine inline-Funktionen als Member einer Klasse nehmen und die Objekte private deklarieren... allerdings bin ich mir nicht sicher, ob das eine Lösung für dein Problem ist, weil mir nicht ganz klar ist, was du mit "Hauptfunktion" meinst... 🙄



  • Cocaine schrieb:

    was du mit "Hauptfunktion" meinst... 🙄

    "int main()"?

    @Gom: Kannst du vielleicht etwas präziser ausdrücken was du willst. Soll man von aussen nicht auf die Variablen zugreifen können oder willst du sie in der netten Liste verstecken die im Editor aufpoppt wenn man "." oder "->" nach einem Objektnamen eingibt?



  • Ich wollte das man auch die Objekte in der "main()" Funktion nicht verwenden kann. Also praktisch eine Schnittstelle zu den Objekten.

    Ich habe es jetzt so gelöst:

    inline int Funktion()
    {
      extern OBJEKT *obj;
      return obj->GetInt;
    }
    

    Was haltet ihr davon. Weil es mir auch um Geschwindigkeit geht.



  • wenn du das mit einer Klasse machst, sollte es nicht langsammer sein und es ist besser verständlich, somit leichter zu warten und spart dadurch mehr Geld 🙂

    Also ich seh kein Grund, warum du das nicht über eine Klasse machen solltest (kannst ja alle Member statisch machen)



  • kingruedi schrieb:

    wenn du das mit einer Klasse machst, sollte es nicht langsammer sein und es ist besser verständlich, somit leichter zu warten und spart dadurch mehr Geld 🙂

    Also ich seh kein Grund, warum du das nicht über eine Klasse machen solltest (kannst ja alle Member statisch machen)

    Was bedeutet statisch machen? Was bringt mir das?



  • Du musst kein Objekt erstellen.

    class X
    {
      static Object Obj_;
    public:
      static int machwas() { return Obj_->getInt(); };
    };
    
    int main()
    {
      return X::machwas();
    }
    

Anmelden zum Antworten