[英]Convert the child object pointer to the base class(from another namespace) pointer
对于我现有的正在运行的代码,它有如下语句:
namespace aa{
class a{}
class b: public a {....}
class x
{
a* function(){
b* object = new b(...);
....
return b;
}
}
}
在“函数”调用期间存在从 b* 到 a* 的隐式转换。 它返回一个*。 有用。
现在我已经将类移动到另一个命名空间,如:
namepsace newaa{
class a{}
}
namespace aa{
class b: public newaa::a {....}
class x
{
newaa::a* function(){
b* object = new b(...);
....
return b;
}
}
}
通过上述更改,我收到错误:无法将 'aa::b*' 转换为 'newaa:a*' 作为回报,为什么?
如果我使用 dynamic_cast return dynamic_cast(b) 它通过编译但我在其他文件中遇到了一些其他错误。
我让你的代码与这些修复程序一起工作; 主要是:从function()
返回object
,而不是类型b
:
namespace newaa{
class a{};
}
namespace aa{
class b: public newaa::a {};
class x
{
newaa::a* function(){
b* object = new b();
return object;
}
};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.