将派生类的指针传递给另一个需要基类指针的类的构造函数

时间:2019-06-26 20:45:55

标签: c++ inheritance

我正在尝试将“ this”指针从父对象传递给其他类型的成员对象的构造函数,以便成员对象可以指向其父对象。

这对我来说很好用,除了我创建父类的派生类,然后尝试将其“ this”指针传递给成员对象时除外。成员类的构造函数需要一个指向基类类型的指针-我宁愿不要为每个派生类名称更改此指针,也不希望在此进行任何动态转换。

我是否可以创建派生类,并将“ this”指针从它们传递给成员类-并且在过程中不将其隐式转换回其基类指针类型?

谢谢!

1 个答案:

答案 0 :(得分:1)

在c ++中隐式转换为public基类。如果隐式不允许强制转换,那么您很可能是从private ly或protected ly的基类派生的。如果要使用隐式向上广播,请确保您派生public ly。另外,您可以定义一个隐式转换运算符,如下所示:

operator Base() const { ... }

如果您希望类表现为自身(而不是其基类),即使将其用作基类指针或引用,也应将要以这种方式表现的函数声明为virtual

您可以找到有关继承here的更多信息以及有关虚函数here的一些见解。