7得票2回答
Java最佳实践:对象转换 vs 接口转换

假设我们有以下玩具接口: interface Speakable { public abstract void Speak(); } interface Flyer { public abstract void Fly(); } 我们有一个实现了这两个接口的类: cl...

7得票2回答
使用 dynamic_cast 进行向下转型时返回 null

我正在尝试使用 dynamic_cast 将一个基类对象向下转换为派生类对象,但是 dynamic_cast 返回了 null。使用 dynamic_cast 可以进行向下转型吗? struct A { virtual ~A() {} }; struct B : A {}; int...

7得票6回答
向下转型在哪些情况下会有用处?

我知道downcasting基本上是将父类指针或引用转换为派生类引用或指针的转换,为此您需要使用dynamic_cast运算符。但我几乎想不出任何例子。你们能否解释一下?

7得票1回答
为什么从指向基类的指针到指向派生类的指针进行static_cast是“无效”的?

我有这样一段代码: Node* SceneGraph::getFirstNodeWithGroupID(const int groupID) { return static_cast<Node*>(mTree->getNode(groupID)); } mTre...

7得票4回答
在Java中扩展一个类,使得任何父类都可以转换为它

我有一种感觉这是不可能的,但如果可以的话,那将非常有用。 我试图以一种方式扩展父类,使得子类仅具有新方法,没有新构造函数,也没有新字段。因此,子类的基础数据结构与父类相同。当我想要为内置的java类(例如Vector3d)提供附加功能时,通常会发生这种情况。鉴于底层数据是相同的,是否有可能将...

7得票1回答
Java - 克隆中的向下转型

假设 Class B 继承自 class A,而 class A 是可克隆的,代码如下: public class A implements Cloneable { public Object clone() throws CloneNotSupportedException { ...

7得票1回答
C++ 避免向下转型

我需要解析一个源代码。我已经确定了3种不同的令牌类型:符号(运算符、关键字)、字面量(整数、字符串等)和标识符。 我已经有了以下的设计,使用一个基类来跟踪子类的类型,这样它可以使用基类指针进行downcast操作: class Token { type_e type; // E_S...

7得票5回答
将对象转换为ArrayList然后再转换为自定义ArrayList的成本问题

我有一个情况,需要从数据库获取数据,我想将其向上转型为对象的ArrayList,然后再向下转型为不同的自定义ArrayList,例如List<User>、List<Groups>等。 我的问题是,将对象向上转型再向下转型为ArrayList,成本会是多少?这样做是否有...

7得票1回答
为什么模板函数没有应用自动向下转换?

有人问了这个问题,关于字符串拼接。代码string s; s = s + 2;无法编译通过。人们给出的答案说明operator+是一个模板函数,而operator+=不是,所以自动下转换(int(2)到char(2))没有被应用。 函数原型如下 template<typename _...