Imaginez le Childs pour chiens et chats des animaux avec ces constructeurs de copie:C de la référence à l'enfant inhereting dans parent abstrait
class Animal
{
public:
Animal(??? other);
}
class Dog : Animal
{
public:
Dog(Dog& other);
}
class Cat : Animal
{
public:
Cat(Cat& other);
}
Que dois-je écrire pour le ???
dans la classe animale mère pour permettre aux constructeurs suivants :
Cat cat(otherCat);
Dog dog(otherDog);
Mais pas ce que ce serait avec Animal&
:
Cat cat(otherDog);
Dog dog(otherCat);
Serait-il possible d'avoir aucun constructeur accepter animal super classe? Alors seulement les constructeurs de sous-classe seront appelés –
tout d'abord, si vous avez affaire à C++ vous avez manqué un ':' après le mot-clé 'public'. Deuxièmement, vous pouvez juste mettre 'otherAnimal' là, puisque les constructeurs ne sont pas hérités – Fureeish
Si vous donnez' Cat' un 'Cat', que voulez-vous finir? – doctorlove