我有一个抽象类,比如说Animal
。从这个类中,我有很多继承类,例如Cat
, Dog
, Mouse
。我有一个方法,我希望能够获取指向这些对象的指针。所以void someMethod(Animal **anAnimal);
这是如何实现的?看来我不能这样向上投射。我正在尝试以下操作:
Dog *d = new Dog(x); //some parameter x.
Animal **animal = &d;
someMethod(animal);
//where someMethod has the method signature...
void someMethod(Animal **anAnimal);
我做错了什么,我怎样才能完成我正在尝试的事情?
你需要一个Animal*
:
Dog* d = new Dog(x);
Animal* a = d;
Animal** animal = &a;
someMethod(animal);
An Animal**
只能指向一个Animal*
。如果它能指向一个,那就太糟糕了Dog*
。如果可以的话,你可以这样做:
Dog* d = new Dog(x);
Animal** animal = &d;
*animal = new Hippopotamus();
Now d
指向一个Hippopotamus
,这确实是非常错误的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)