C++ boost::shared_ptr & boost::weak_ptr &动态转换
我有这样的事情: enum EFood{ eMeat, eFruit }; class Food{ }; class Meat: public Food{ void someMeatFunction(); }; class Fruit: public Food{ …
如果没有单个虚函数,dynamic_cast 的行为是否与 static_cast 相同?
在没有任何虚函数的类层次结构中,dynamic_cast 是否会表现得像一个简单的 static_cast 因为它没有为 RTTI 存储任何信息,或者会给出错误?…
C++ Dynamic_cast - 多态要求和向下转型
在下面的代码中,在情况 1 中构造 obj 时,我们也构造了一个派生类对象,但它的成员函数对于 obj 来说是无法访问的。因此,在向下转换时(即在情况 2 …
boost::shared_ptr 和动态转换
我在使用基类的 shared_ptr 时遇到问题,在取消引用它时似乎无法调用派生类的方法。我相信代码会比我更冗长: class Base : public boost::enable_sha…
来自“void *”的dynamic_cast
根据 this,void* 有没有 RTTI 信息,因此从 void* 进行转换是不合法的,但它是有意义的。 如果我没记错的话,来自 void* 的 dynamic_cast 正在 gcc …
是否可以将dynamic_cast从一个基类转换为另一个基类?
例如,我有这样的代码 class Base1 { virtual void wonderFULL() = 0; }; class Base2 { // all this weird members }; class Derived : public Base1…
C++向下转型(使用dynamic_cast)返回NULL?
环境:Linux C++ / Qt 4x 我不明白为什么下面的向下转型返回NULL?我在下面粘贴了基类和派生类。 预先感谢您的任何提示或建议。 -Ed void MainWindow:…
我可以教dynamic_cast<>()新技巧吗?
C++ 中有没有一种方法可以构造您的类,以便给定一个指向您的类的指针,您可以指示dynamic_cast<>() 如何转换为您要包装其实现的另一个类?运算符强制…
Dynamic_cast 通常是如何实现的?
类型检查仅仅是整数比较吗?或者使用 GetTypeId 虚拟函数来区分哪个将使其成为整数比较是否有意义? (只是不希望事情成为类名上的字符串比较) 编辑…
继承和指向指针的指针:为什么它不起作用以及如何解决它?
当我使用指向继承类的指针调用基类函数时,为什么会出现编译错误? 示例: class cFoo {}; class cBar : public cFoo {}; void func1(cFoo *) {} // b…
如何编写自己的dynamic_cast
这一点在采访中已经被问到了。 如何编写自己的dynamic_cast。我认为,基于typeid的name函数。 现在如何实现自己的typid?我对此一无所知。…