Il y a une arborescence de classes enracinée à CBase (single-inheritance). CSub est dérivé de CBase, et d'autres classes dérivées de CBase ou CSub, et CBase ayant des fonctions d'élément virtuel.Comment puis-je m'assurer de l'assignabilité dans cet arbre?
Toutes les classes doivent être assignables. Certaines classes ont des membres (pointeurs) que nécessitent un traitement spécial dans l'affectation (pointeurs). Comment puis-je m'assurer de l'assignabilité dans cet arbre de classes? D'abord, j'ai pensé que je devais rendre "opérateur =" virtuel. Puis j'ai réalisé que c'était faux. Ensuite est du tout possible:
CBase *x = new CSub;
CBase *y = new CSub;
*x = *y; // is this okay ?
Sinon, comment dois-je attribuer * y * à x sans mal baissés? J'ai beaucoup de questions ici.
Si j'ai besoin de lancer à chaque fois que j'attribue via CBase *, cela ne correspond pas à , n'est-ce pas? Ai-je besoin d'insérer des vérifications de type dans "operator =" pour vérifier que lhs et rhs ont le même type? etc etc. Les exemples sont les bienvenus.
Merci Viki
Quel long titre! Pourriez-vous svp résumer d'une manière ou d'une autre le titre pour l'adapter dans une ligne simple? –
J'ai pris une photo. Viki, quel est votre résumé? (J'étais tellement tenté de modifier à "Ceci est l'arbre".) – Nosredna