读书人

子类隐式转化成父类型参数会出现什么

发布时间: 2012-04-16 16:20:04 作者: rapoo

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

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()返回的对象到容器中的吧;

读书人网 >C++

热点推荐