static außerhalb von funktionen



  • hallo,

    was bedeutet ein static, wenn es nicht innerhalb einer funktion verwendet wird?



  • GöRöll schrieb:

    hallo,

    was bedeutet ein static, wenn es nicht innerhalb einer funktion verwendet wird?

    eine globale var in der foo.cpp

    int x;
    

    kann ich in der bar.cpp mit

    extern int x;
    

    klauen und das ist manchmal nicht ok.

    static-variablen kann keine andere übersetzungseinheit klauen.

    edit: und wenn es in c++ wäre:
    static in dieser bedeutung zu verwenden ist depricated. sollst jetzt in der foo.cpp

    namespace{
    int x;
    }
    

    machen, um sie zu schützen.

    static oder einen anonymen namespace in dieser bedeutung zu verwenden ist die kapselung für c-programmierer. in c++ geht das mit klassen meistens angemessener.



  • volkard schrieb:

    ...

    namespace{
    int x;
    }
    

    ...

    ist das ein sprachmittel von c? oh!



  • staunefrau und töchter schrieb:

    volkard schrieb:

    ...

    namespace{
    int x;
    }
    

    ...

    ist das ein sprachmittel von c? oh!

    nee. sorry.


Anmelden zum Antworten