Partage
  • Partager sur Facebook
  • Partager sur Twitter

Classe virtuelle pure en argument

Anonyme
    27 novembre 2017 à 18:48:54

    Merci pour tout!

    koala01 a écrit:

    Lis la doc !!!

    Je sortais de la doc d'ou mon allusion a mon niveau d'anglais.

    -

    Edit

    J'ai tout teste avec ce code la:

    #include <iostream>
    #include <memory>
    #include <cstdlib>
    
    class MaClasse
    {
        public:
        MaClasse(const int number) : m_ptr(new int(number))
        {
            //rien a faire ici
        }
        std::unique_ptr<int> m_ptr;
    
    };
    
    int main(int argc, char** argv)
    {
        //bloc sujet aux exceptions
        try
        {
            //allocation dynamique dans le constructeur /!\ exceptions
            MaClasse ptr(15);
    
            //ecriture de la valeur du pointeur
            std::cout << *(ptr.m_ptr) << std::endl;
    
            //declaration d'un pointeur intelligent
            std::unique_ptr<int> ptr2;
    
            //transfert de responsabilites
            ptr2.reset(ptr.m_ptr.release());
            ptr.m_ptr.reset(nullptr);
    
            //ecriture de la valeur du pointeur intelligent non-nu
            std::cout << *ptr2 << std::endl;
    
            //ecriture de l'adresse sur laquelle pointe le pointeur intelligent inintial
            std::cout << ptr.m_ptr.get() << std::endl;
        }
    
        //en cas d'echec du programme (notamment l'allocation dynamique)
        catch(const std::exception& except)
        {
            //ecriture du raport d'exception
            std::cerr << except.what() << std::endl;
        }
        return 0;
    }
    

    Je crois qu'il n'y a que la non encapsulation de MaClasse qui pose probleme (pour que le code soit propre, quoi). Si vous voyez d'autres problemes, je suis preneur (c'est quand meme important de coder proprement, non?).

    -
    Edité par Anonyme 27 novembre 2017 à 19:14:40

    • Partager sur Facebook
    • Partager sur Twitter

    Classe virtuelle pure en argument

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown