Typkonvertierung



  • Hallo ich lese mir gerade etwas über Typkonvertierung zu hier steht nun:

    const-cast Konvertierung
    
    Sehen wir uns die neuen Typkonvertierung an und beginnen mit dem einfachsten Fall, der const_cast Konvertierung. Der const_cast Operator dient dazu, den const oder volatile Modifizierer von einem Datentyp zu entfernen. Dabei darf sich der neue Datentyp vom Ursprungsdatentyp nur durch den Modifizierer const oder volatile unterscheiden. Alle anderen Konvertierungen führen zu einem Fehler beim Übersetzen des Programms. Als Ergebnis liefert const_cast den auf DTYP konvertierten Ausdruck. Die erste Zuweisung links liefert einen Fehler, da ein Zeiger auf einen konstanten Text nicht einem Zeiger auf einen veränderlichen Text direkt zugewiesen werden kann. Wie's trotzdem geht ist in der darunter stehenden Anweisung dargestellt, hier wird der const-Modifizierer entfernt.// Zeiger auf konstante Zeichen
    const char *pConst = "Text";
    // Zeiger auf veraenderbare Zeichen
    char *pVar
    // Das schlägt fehl!
    pVar = pConst;
    // Aber so geht's
    pVar = const_cast<char*>(pConst);
    

    Quelltext ( sollte laut Tutorial funktionieren .... )

    #include <iostream>
    using namespace std;
    
    int main ()
    {
    
    const char *pConst = "Text";
    
    char *pVar
    
    pVar = const_cast<char*>(pConst);
    
    system("PAUSE");
    
    }
    

    E2141 Fehler in der Deklarationssyntax



  • Es fehlt ein Semikolon.



  • in Zeile 10. 😉

    Aber das hätte dir die IDE auch sagen können, wenn du Doppelklick auf die Fehlermeldung gemacht hättest. (oder gelesen, welche Zeile dort angezeigt ist.)



  • ok ^^ danke



  • Du kannst dir gleich merken, dass const_cast sehr böse ist und normalerweise nicht angewandt werden sollte. Wenn man sich bei Const-Correctness was überlegt und auch nicht mit C-APIs oder fragwürdigen Bibliotheken zu tun hat, ist es praktisch immer vermeidbar.


Anmelden zum Antworten