我说有一个抽象类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);
Run Code Online (Sandbox Code Playgroud)
我做错了什么,我怎样才能完成我的尝试?
你需要一个Animal*:
Dog* d = new Dog(x);
Animal* a = d;
Animal** animal = &a;
someMethod(animal);
Run Code Online (Sandbox Code Playgroud)
一个Animal**只能指向一个Animal*.如果它可以指向一个非常糟糕的话Dog*.如果可以的话,你可以这样做:
Dog* d = new Dog(x);
Animal** animal = &d;
*animal = new Hippopotamus();
Run Code Online (Sandbox Code Playgroud)
现在d指向a Hippopotamus,这确实是非常错误的.
| 归档时间: |
|
| 查看次数: |
2479 次 |
| 最近记录: |