C 在功能参数中指向基类指针的指针

C++ casting a pointer to a reference to pointer of base class in function parameter

本文关键字:指针 基类 功能 参数      更新时间:2023-10-16

我正在尝试使用其构造函数创建嵌套类的构造函数,该类别从父嵌套的类中继承。基本上:

DerivedList<T>::DerivedNested::DerivedNested(DerivedNode*& ptr)
  : BaseList<T>::BaseNested::BaseNested(ptr)
{}

我的基础构造函数的原型是这样的:

BaseList<T>::BaseNested::BaseNested(BaseNode*& ptr)

(并且需要通过参考获得PTR参数,因为它需要该指针在其代码中的地址)

我认为我必须将我的派生词*施加到一个basenode*,但是:static_cast :: basenode*>(ptr)没有找到匹配的功能,因为它不是参考,而static_cast :: basenode*&amp;>(PTR)给出无效的铸造错误。

dynamic_cast也是如此。reinterpret_cast编译,但在切除过程中给出了一些不正确的东西。

有人知道我怎么称呼该父构建器?

如果您认为需要参考,那可能是因为您要以后修改指针。问题在于,派生类中指针的类型是DerivedNode*,而基类中的BaseNode*。如果基类影响DerivedNode2*的指针怎么办?

您应该使用设定器,或将逻辑从基类移动到派生的逻辑。