标签: c++ inheritance
我正在尝试将“ this”指针从父对象传递给其他类型的成员对象的构造函数,以便成员对象可以指向其父对象。
这对我来说很好用,除了我创建父类的派生类,然后尝试将其“ this”指针传递给成员对象时除外。成员类的构造函数需要一个指向基类类型的指针-我宁愿不要为每个派生类名称更改此指针,也不希望在此进行任何动态转换。
我是否可以创建派生类,并将“ this”指针从它们传递给成员类-并且在过程中不将其隐式转换回其基类指针类型?
谢谢!
答案 0 :(得分:1)
在c ++中隐式转换为public基类。如果隐式不允许强制转换,那么您很可能是从private ly或protected ly的基类派生的。如果要使用隐式向上广播,请确保您派生public ly。另外,您可以定义一个隐式转换运算符,如下所示:
public
private
protected
operator Base() const { ... }
如果您希望类表现为自身(而不是其基类),即使将其用作基类指针或引用,也应将要以这种方式表现的函数声明为virtual。
virtual
您可以找到有关继承here的更多信息以及有关虚函数here的一些见解。