首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

子类隐式转化成父类型参数,会出现什么有关问题吗

2012-04-16 
子类隐式转化成父类型参数,会出现什么问题吗?C/C++ codestd::auto_ptrB cmd(new B).........C.pushBack

子类隐式转化成父类型参数,会出现什么问题吗?

C/C++ code
    std::auto_ptr<B> cmd(new B);    ...    ...    ...    C.pushBack(cmd.get());      其中pushBack()的参数是A类型,A是B的父类   C与AB没关系


[解决办法]
探讨
引用:

没问题啊!

还有,cmd.get()得到的B会转换成A类型,还是直接以B类型传入?

[解决办法]
探讨
C/C++ code
C.pushBack(cmd.get());

容器C中的指针的生命周期被cmd所控制,一旦cmd消亡,容器中的元素立刻变成野指针。

[解决办法]
探讨

引用:

C/C++ code
C.pushBack(cmd.get());

容器C中的指针的生命周期被cmd所控制,一旦cmd消亡,容器中的元素立刻变成野指针。

哦,对!后面有cmd.release应该就没问题了吧

[解决办法]
探讨

引用:
C/C++ code
C.pushBack(cmd.get());

容器C中的指针的生命周期被cmd所控制,一旦cmd消亡,容器中的元素立刻变成野指针。

编译器实际是调用copy constructor拷贝cmd.get()返回的对象到容器中的吧;

热点排行