Je suis en train de "moderniser" le code existant.
- J'ai une classe qui dispose actuellement d'une variable membre "de l'Appareil* device_".
- Il utilise à nouveau pour créer une instance dans certains code d'initialisation et a un "supprimer device_" dans le destructory.
- Les fonctions de membres de cette classe appel à de nombreuses autres fonctions qui prennent un Périphérique* en tant que paramètre.
Cela fonctionne bien, mais pour "moderniser" mon code je pensais que je devais changer la variable est définie comme "std::unique_ptr<Device> device_"
et de supprimer l'appel explicite à supprimer, ce qui rend le code plus sûr et meilleur.
Ma question est la suivante -
- Comment dois-je passe ensuite l' appareil_ variable pour toutes les fonctions qui ont besoin de lui comme un paramater?
Je peux appeler .get pour obtenir le pointeur brut dans chaque appel de fonction. Mais qui semble laid et déchets-unes des raisons pour utiliser un unique_ptr en premier lieu.
Ou je peux changer chaque fonction, de sorte qu'au lieu de prendre un paramètre de type "Périphérique*" il faut maintenant une paramater de type "std::unique_ptr& ". Qui (pour moi) un peu dissimule les prototypes de fonction, et les rend difficile à lire.
Quelles sont les meilleures pratiques pour cela? Ai-je oublié d'autres options?