extern in Memberfunktion? Was bringt das denn?



  • Aus QT 4 Source Code:

    bool QWidget::focusNextPrevChild(bool next)
    {
    /* ... */
    
        extern bool qt_tab_all_widgets;
    /* ... */
    }
    

    Was bringt denn da das extern? Ich kenne das eigentlich nur für globale Variablen...



  • Hallo,
    Das Linkage von

    qt_tab_all_widgets;
    

    richtet sich in diesem Fall nach dem Linkage einer vorangehenden Deklaration gleichen Bezeichners. Gibt es keine solche Deklaration ist das Linkage extern. Beispiel:

    // foo.cpp
    
    ...
    int qt_tab_all_widgets;
    ...
    
    // bar.cpp
    void f()
    {
          // Bezieht sich auf das globale qt_tab_all_widgets und hat somit external Linkage.
          extern int qt_tab_all_widgets;
    }
    

    /edit: ...

    Caipi


Anmelden zum Antworten