Citation:
En réfléchissant, cela me semble normal que l'on ait l'appel des deux destructeurs, car on a crée au début un objet Docteur. Donc une place mémoire a été allouée, donc on doit appeler les deux destructeurs à la fin.
On appelle deux destructeurs : 1 sur l'objet homme, un sur l'objet docteur. Le problème, c'est que le premier (delete homme) est en réalité un comportement indéterminé, pour les raisons données par Loic.
Et pour en revenir à l'histoire de destructeur virtuel par défaut, je pense qu'une classe ayant une fonction virtuelle, mais un destructeur non virtuel, devrait au moins être un warning de compilation. J'ai du mal à imaginer un cas où ça puisse être utile, et je ne pense pas que passer le destructeur virtuel, puisqu'il y a déjà une vtable, ait un coût notable.
Sinon :
Citation:
est-ce que -> est le seul moyen d'accéder
>>j'ai répondu oui (je n'ai jamais vu un autre moyen pour y accéder)
(*p).toto() fonctionne aussi.
Citation:
>>peut-on surcharger des constructeurs
j'ai dit oui,
Oui : surcharge de constructeur avec des signatures différentes.
Citation:
est-ce que le pointeur this dans une fonction membre constante est un pointeur constant
>>je ne sais pas
Oui : sinon, tu pourrais modifier l'objet.
Citation:
est-ce que l'opérateur de portée :: peut-être surchargé:
>>j'ai dit non
Il me semble aussi que non.
Citation:
est-ce qu'on peut donner des alias a des namespace
>>j'ai répondu non
si :
Code:
namespace fs=boost::filesystem;
Citation:
est-ce qu'il y a un autre moyen d'accéder aux éléments de namespace que ::
>>j'ai répondu non.
using namespace std; par exemple, mais ça me semble une réponse tordue à la question.