は、これらのコピーコンストラクタと動物のチャイルズ犬や猫を想像:C++リファレンス
class Animal
{
public:
Animal(??? other);
}
class Dog : Animal
{
public:
Dog(Dog& other);
}
class Cat : Animal
{
public:
Cat(Cat& other);
}
は、私は、次のコンストラクタを許可するように、親動物のクラスで???
のために書くためには何がありますか:
Cat cat(otherCat);
Dog dog(otherDog);
ではなく、これらのそれはAnimal&
になりますよう:
Cat cat(otherDog);
Dog dog(otherCat);
スーパークラスにはコンストラクタ受け入れて動物を持っていないすることは可能でしょうか?まず、サブクラスのコンストラクタは –
と呼ばれます.C++を扱っている場合、 'public'キーワードの後ろに': 'がありません。第二に、コンストラクタが継承されないので、 'otherAnimal'をそこに置くことができます – Fureeish
' Dog'に 'Cat'を渡すと、あなたは何をしたいですか? – doctorlove