gpt4 book ai didi

C++ 继承,发送指向基类的指针

转载 作者:行者123 更新时间:2023-11-28 02:30:50 25 4
gpt4 key购买 nike

我有一个派生自 Creep 类的 ninjaCreep 类。我想将通过派生类的参数获取的指针传递给基类的构造函数,但是出现此错误:

../ninjacreep.cpp|4|error: no match for ‘operator*’ (operand type is >‘Ogre::SceneManager’)|

代码:

ninjaCreep::ninjaCreep(Ogre::SceneManager& sceneManager, int x, int y, int z, std::string id)
: Creep(*sceneManager, x, y ,z, id) //line 4
{
//ctor
}

我以前从未传递过指向基类的指针,所以我认为错误出在某处?

Creep 构造函数与 ninjaCreep 具有相同的参数:

Creep(Ogre::SceneManager& sceneManager, int x, int y, int z, std::string id);

最佳答案

您只需按原样使用参数:

ninjaCreep::ninjaCreep(Ogre::SceneManager& sceneManager, int x, int y, int z, std::string id)
: Creep(sceneManager, x, y ,z, id) //line 4 no "*"
{
//ctor
}

sceneManager 不是指针:它是对 SceneManger 类型对象的引用。它被用作普通的 SceneManager 对象,没有任何取消引用。

重要提示:

& 可以是类型声明的一部分:

int a 
int &i=a ; // i is a reference. you can then use i and a interchangeably

不要与地址获取运算符混淆:

int a; 
int *pa = &a; // pa is a pointer to a. It contains the adress of a.
// You can then use *pa and a interchangeably
// until another address is assigned to pa.

关于C++ 继承,发送指向基类的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29065238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com