相关疑难解决方法(0)

C++:使用boost :: dynamic_pointer_cast时,"...不是多态类型"

为什么我收到以下代码的以下错误?

1>C:\Libs\boost_1_44\boost/smart_ptr/shared_ptr.hpp(259): error C2683: 'dynamic_cast' : 'my_namespace::A' is not a polymorphic type
1>          D:\[location]\[header_filename].h(35) : see declaration of 'my_namespace::A'
1>          C:\Libs\boost_1_44\boost/smart_ptr/shared_ptr.hpp(522) : see reference to function template instantiation 'boost::shared_ptr<T>::shared_ptr<my_namespace::A>(const boost::shared_ptr<my_namespace::A> &,boost::detail::dynamic_cast_tag)' being compiled
1>          with
1>          [
1>              T=my_namespace::B
1>          ]
1>          [location]\[source_filename].cpp(217) : see reference to function template instantiation 'boost::shared_ptr<T> boost::dynamic_pointer_cast<my_namespace::B,striker::A>(const boost::shared_ptr<my_namespace::A> &)' being compiled
1>          with
1>          [
1>              T=my_namespace::B
1>          ]
1>C:\Libs\boost_1_44\boost/smart_ptr/shared_ptr.hpp(260): fatal error C1903: unable to recover from previous error(s); stopping compilation
Run Code Online (Sandbox Code Playgroud)

C++代码或多或少如下:

#include <list>
#include …
Run Code Online (Sandbox Code Playgroud)

c++ dynamic-cast compiler-errors shared-ptr

21
推荐指数
2
解决办法
2万
查看次数

除了vtable之外,如何实现C++虚函数?

可能重复:
关于C++中虚拟机制的问题

使用vtable是在C++中实现虚拟成员函数机制的唯一方法吗?还有其他什么方式?

c++ polymorphism virtual member-functions

14
推荐指数
2
解决办法
1601
查看次数