static_cast vs. alten cast-operator



  • Jester schrieb:

    Ich finde, da ist ein static_cast angebracht, weil es häßlich ist und damit auch häßlich aussehen sollte (imho).

    ok, dann herrsch ja konsens. nicht aus prinzip den einen oder anderen cast nehmen, sondern häßliche casts eher für häßliche dinge.



  • 3 schrieb:

    @rapso: dynamic_cast nicht.

    erstmal informieren..
    natürlich gibts nen
    dynamic_cast<T>();

    Mfg Shade37337



  • shade37337 schrieb:

    3 schrieb:

    @rapso: dynamic_cast nicht.

    erstmal informieren..
    natürlich gibts nen
    dynamic_cast<T>();

    Mfg Shade37337

    Ich glaube er meinte, dass der dynamic_cast nicht durch die C-Casts ersetzt werden kann:

    #include <iostream>
    
    struct frucht {
        virtual ~frucht() {}
    };
    
    class apfel : public frucht { };
    
    class birne : public frucht { };
    
    int main() {
        frucht* p = new apfel;
        std::cout << "C++ sagt:" << std::endl;
        if(dynamic_cast<apfel*>(p)) {
            std::cout << "Es ist ein Apfel!" << std::endl;
        }
        if(dynamic_cast<birne*>(p)) {
            std::cout << "Es ist eine Birne!" << std::endl;
        }
        std::cout << "\nC sagt:" << std::endl;
        if((apfel*)(p)) {
            std::cout << "Es ist ein Apfel!" << std::endl;
        }
        if((birne*)(p)) {
            std::cout << "Es ist eine Birne!" << std::endl;
        }
        delete p;
    }
    

    mfg.


Anmelden zum Antworten