52得票6回答
dynamic_cast的性能表现?

在阅读问题之前: 这个问题不涉及使用dynamic_cast的有用性,只是关于它的性能。 我最近开发了一个设计,在其中大量使用了dynamic_cast。 在与同事讨论时,几乎每个人都说不应该使用dynamic_cast,因为它会影响性能(这些同事有不同的背景,在某些情况下甚至不认识对方。我...

102得票13回答
Java:如何将变量从一种类型动态转换为另一种类型?

我希望能够对Java变量进行动态类型转换,而类型信息存储在另一个变量中。 以下是常规的类型转换方法: String a = (String) 5; 这就是我想要的: String theType = 'String'; String a = (theType) 5; 这是否有可能实现,如果...

25得票3回答
常见问题:为什么dynamic_cast只在一个类至少有一个虚方法时才有效?

这段代码在C++中无法编译:class A { }; class B : public A { }; ... A *a = new B(); B *b = dynamic_cast<B*>(a);

7得票2回答
如何在for_each中使用dynamic_cast

I have the following code: vector<C1*>::iterator itr = vec.begin(); for (; itr != vec.end(); ++itr) { C2 *c = dynamic_cast<C2*>(*itr...

9得票2回答
当编译器没有看到可能满足转换的类型时,编译器是否允许优化掉对易失指针的dynamic_cast?

看看这个小片段: struct A { virtual ~A() { } }; struct B { }; bool fn() { A *volatile a = new A; return dynamic_cast<B *>(a); } 编译器...

14得票2回答
C++:比较基类和派生类的指针

我想了解一些有关在如下情况下比较指针的最佳实践:class Base { }; class Derived : public Base { }; Derived* d = new Derived; Base* b = dynamic_cast<Base*>(d); /...

10得票4回答
C++中复杂的dynamic_cast

我有以下C ++案例: 抽象基类Abstract1和Abstract2。它们没有关联。 一个类Foo从Abstract1和Abstract2派生 我在一个编译单元中,没有关于类Foo的任何信息(没有声明,没有定义)。只有Abstract1和Abstract2是已知的。 (实际上,Foo...

19得票6回答
动态类型转换为什么会导致崩溃?

我有一段代码长成这样:TAxis *axis = 0; if (dynamic_cast<MonitorObjectH1C*>(obj)) axis = (dynamic_cast<MonitorObjectH1C*>(obj))->GetXaxis(); ...

13得票4回答
C++动态转型——多态要求和向下转型

在下面的代码中,在情况1构建obj时,我们同时构建了一个derived类对象,但其成员函数对obj是不可访问的。所以在向下转换(即情况2)时,使用obj作为源时,我们已经有了构造好的derived。为什么obj需要是多态的? 如果我的上述描述让你感到困惑,那么为什么在向上转型时obj不需要是...

8得票3回答
动态转换后删除指针是否安全?

void foo(MyClass* myClass) { BaseClass* pBaseClass = dynamic_cast<BaseClass*>(myClass); delete myClass; // <-------------- Does ...