【发布时间】:2013-11-17 01:23:32
【问题描述】:
如果我有一个带有父类 A 和子类 B 和 C 的继承层次结构,我如何通过 boost::shared_ptr 使用多态性,以便函数
virtual void my_func(boost::shared_ptr<A> x) = 0;
可以实现为
void my_func(boost::shared_ptr<B> x);
和
void my_func(boost::shared_ptr<C> x);
?即使有 shared_ptr 概念,多态性是否仍然有效?
(很高兴知道这是否适用于 std::shared_ptr 以及 boost)
【问题讨论】:
-
这些函数签名是不等价的。所以我不认为你在这里完全压倒一切。
标签: c++ boost c++11 polymorphism overriding