Il s'agit d'un point impair. Notez que ceci est réduit le code d'exemple, et manque délibérément des destructeurs). J'utilise la classe Ptr de cet exemple dans un vecteur, comme un pointeur vers une classe dérivée.pointeur constant en tant qu'argument de constructeur
Comme nous pouvons le voir, le Ptr prend un Base<>*
comme argument de constructeur.
Malheureusement, je besoin d'un constructeur qui prend une base de const <> *, et je ne peux pas simplement faire ceci:
Ptr(const Base<>* a) { in = const_cast<Base<>*>(a)};
Toute idée comment je peux faire accepter cette classe un const Base<>*
comme il est constructeur?
Edit:
Ok, s'avère que je peux résoudre ce problème en modifiant le code indépendant, donc il est un peu un non-problème maintenant =] m'a pris environ un jour pour le fixer si = [
Vous m'a perdu à "n'obtenez pas la supériorité ou quoi que ce soit". –
Mes excuses. La dernière fois que j'ai posté un code d'exemple, un gars m'a raconté que je n'avais pas de destructeurs virtuels. –