next up previous contents index
Next: Compiler-Warnungen beachten Up: 50 Ways to Improve Previous: Laufzeit-Tests

Globale Objekte vor der Benutzung initialisieren

 

Es gibt drei Regeln:

Es gibt keine Aussage über die Initialisierungsreihenfolge bei mehreren Dateien:

    #include <iostream.h>
    int fun()
    { int inp;
      cin >> inp;
      return inp;
    }
    
    int i = fun();
    int main()
    { cout << "i is " << i << endl;
    }

Wer sorgt dafür, daß das Objekt cin initialisiert ist, bevor i initialisiert wird ???

Am Ende der Include-Datei iostream.h wird folgendes Objekt definiert:

    static class Iostream_init {
       ...
    public:
            Iostream_init() ;
            ~Iostream_init() ;
    } iostream_init ;

Dessen Konstruktion sorgt dafür, daß cin initialisiert wird.


next up previous contents index
Next: Compiler-Warnungen beachten Up: 50 Ways to Improve Previous: Laufzeit-Tests

Peter Pfahler, 1997