Question

    

Cette question a déjà une réponse ici:

         

peut-on dire ce qui est coulée signifie dynamique exactement c ++. où exactement peut-on utiliser cette coulée dynamique? cela m'a été demandé dans l'interview et je suis allé à cette question en blanc.)

Était-ce utile?

La solution

Essayez d'utiliser la première recherche ancienne réponse

Autres conseils

dynamic_cast est coulée méthode pour découvrir la classe de l'objet à l'exécution.

class Base
{
    public:
    virtual bool func1();
};


class Derived1 : Base
{
    public:
    virtual bool func1();

    virtual bool funcDer1();
};



class Derived2 : Base
{
    public:
    virtual bool func1();
    virtual bool funcDer2();
};

Base* pDer1 = new Derived1;
Base* pDer2 = new Derived2;


Derived2* pDerCasted = dynamic_cast<Derived2*>(pDer2);
if(pDerCasted)
{
    pDerCasted->funcDer2();
}


-> We cannot call funcDer2 with pDer2 as it points to Base class
-> dynamic_cast converts the object to Derived2 footprint 
-> in case it fails to do so, it returns NULL .( throws bad_cast in case of reference)

Remarque: Il faut éviter Habituellement, dynamic_cast avec une conception soignée OO.

de coulée dynamique est de découvrir en toute sécurité le type d'une instance d'objet lors de l'exécution .

Ceci est réalisé par les tables de référence de génération du compilateur, qui peuvent être potentiellement assez grande. Pour cette raison, il est souvent désactivé lors de la compilation si le programmeur sait qu'ils n'utilisent pas la fonction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top