Wohl jede typorientierte Sprache bietet Möglichkeiten, Werte eines Typs in (identische) Werte eines anderen Typs umzuwandeln. In C++ können bestimmte Typwandlungen implizit (d.h. ohne Zutun des Programmierers) ablaufen, andere müssen explizit notiert werden. In C werden traditionell runde Klammern verwendet, um explizite Typwandlungen zu notieren. Der Sprachstandard definiert darüber hinaus zusätzlich Operatoren, um die verschiedenen Arten von Typwandlungen zu unterscheiden und sicherer zu machen. Für Klassen bietet C++ die Möglichkeit, durch Definition von geeigneten Konstruktoren bzw. Operatorfunktionen beliebige Wandlungen zu definieren. Dadurch sind mächtige Konstruktionen möglich, denn solche selbstdefinierten Wandlungen können ebenfalls implizit ablaufen.
|