Tag: dynamic-cast

Der dynamic_cast-Konvertierung ermöglicht für die sichere Umwandlung von Zeigern (und Referenzen), um Klassen, oben, unten und seitwärts in die Vererbungshierarchie.

FAQ: Warum funktioniert dynamic_cast nur funktionieren, wenn eine Klasse hat mindestens 1 virtuelle Methode?

Anzahl der Antworten 3 Antworten
Diese nicht kompilieren in C++: class A { }; class B : public A { }; ... A *a = new B(); B *b = dynamic_cast<B*>(a); Ich FAQ-freundlich-diese Frage. Die Antwort ist kurz, aber ich denke, ziemlich

java: kombiniert instanceof und cast?

Anzahl der Antworten 5 Antworten
(Bitte kein raten, ich solle abstrakten X mehr und fügen Sie eine weitere Methode, um es.) In C++, wenn ich eine variable x Typ X* und ich will etwas bestimmtes, wenn es auch vom Typ Y* (Y

Was ist die richtige Verwendung für dynamic_cast?

Anzahl der Antworten 5 Antworten
Ich viele Male gesagt habe (und gesehen, die mich in der Praxis), dass die Verwendung von dynamic_cast bedeutet oft schlechtes design, weil es kann und sollte ersetzt werden, mit virtuellen Funktionen. Betrachten Sie beispielsweise den folgenden code:

C++ niedergeschlagen ( mit dynamic_cast ) gibt NULL zurück?

Anzahl der Antworten 3 Antworten
Umgebung: Linux, C++ /Qt 4x Ich verstehe nicht, warum der folgende niedergeschlagen NULL zurück? Ich klebte Basis-und abgeleitete Klasse weiter unten. Vielen Dank im Voraus für Tipps oder Anregungen. -Ed void MainWindow::onRtledaEventHandler(fes::EventArgs eventArgs) { //This cast returns

wie um zu überprüfen, ob zwei Zeiger auf das gleiche Objekt zeigen oder nicht?

Anzahl der Antworten 3 Antworten
Betrachten zwei Zeiger A* a; B* b; Beide A und B sind polymorphe Klassen. Wie um zu überprüfen, ob a und b auf das gleiche Objekt zeigen oder nicht? Mehr genau, lassen Sie uns geben Sie a

dynamic_cast über einen shared_ptr?

Anzahl der Antworten 3 Antworten
Ich habe zwei Klassen A und B, B erbt von A. Wenn ich eine shared_ptr<A> Objekt, das ich kenne, ist wirklich ein B-Subtyp, wie kann ich ein dynamic cast für den Zugriff auf die API von B

Kann nicht mit dynamic_cast auf ein const-Objekt

Anzahl der Antworten 2 Antworten
Möchte ich schreiben eine Methode, wo eine Base Objekt-Zeiger wird als parameter übergeben werden, und innerhalb der Methode wird es gegossen werden, um abgeleitete Objekt Zeiger. void func( const Base* const obj){ Derived* der = dynamic_cast<Derived*>(obj); }

Wie funktioniert dynamic_cast scheitern?

Anzahl der Antworten 1 Antworten
Nach dem, was ich lese, ist die Durchführung einer falschen Laufzeit dynamic_cast kann entweder werfen eine bad_cast-exception oder null zurückgeben. Ist es richtig zu sagen, es wird null zurückgeben, wenn Sie Gießen pointers? ich.e: class Base {

cast const Klasse mit dynamic_cast

Anzahl der Antworten 2 Antworten
Möchte ich cast das: class Base { public: virtual ~Base(){}; }; class Der : public Base {}; int main() { const Base* base = new Der; Der* der = dynamic_cast<Der*>(base); //Error return 0; } Was soll ich

C++: dynamic_cast Ursachen ein SEGFAULT, auch wenn das Objekt, das vergossen wird, nicht NULL ist. Wie kann das passieren?

Anzahl der Antworten 3 Antworten
Angenommen ich habe eine Klasse A und eine Klasse B, abgeleitet von A. Nun möchte ich cast einen const-A* (genannt "a") a B* mit dynamic_cast (siehe unten). Wenn "ein" war wirklich eine B*, dann ist mein Gegenstand,

Fehler: kann nicht dynamic_cast ... (Ziel ist kein Zeiger oder Referenz)

Anzahl der Antworten 4 Antworten
Ich Lerne Ausnahmebehandlung in C++ und läuft in ein problem. Hier ist der code: #include<iostream> #include<exception> using namespace std; class A { public: virtual void f(void){} }; class AA:public A { public: void aa(void){}; }; int main(void)

Wenn dynamic_cast werfen eine Ausnahme für den Fall verwendet, mit Zeiger?

Anzahl der Antworten 2 Antworten
Ich bin mit dynamic_cast in meiner Hand zu werfen Zeiger als einige Sache wie unten Base *base = here storing the pointer; Derived *derived = dynamic_cast<Derived*>(base); In dem Fall der sockel nicht über den Zeiger auf die

Was ist qobject_cast?

Anzahl der Antworten 2 Antworten
Könnte mir jemand erklären, in so einfachen Worten wie möglich (oder so einfach, wie man es gerne hätte), was qobject_cast ist, was es tut und warum wir Sie brauchen würden, um die Besetzung ein Klasse-Typ zum anderen?

Zugriff auf Unterklasse-Mitglieder von einer Oberklasse-Zeiger-C++

Anzahl der Antworten 5 Antworten
Ich habe ein array mit benutzerdefinierten Klasse Student-Objekte. CourseStudent und ResearchStudent beide Erben von Studenten, und alle Instanzen von Student sind, der einen oder der anderen dieser. Habe ich eine Funktion zum Durchlaufen des Arrays ermitteln, der

Dynamic cast mit Objekttyp C#

Anzahl der Antworten 1 Antworten
Ich habe eine abstrakte Klasse namens "A", und die anderen Klassen (B, C, D, E, ...), die Eine Ich habe eine Liste von Objekten. Ich möchte in der Lage zu werfen dynamicly jedes Objekt in dieser Liste

Classcastexception-Fehler

Anzahl der Antworten 4 Antworten
habe ich zwei Klassen in java: class A { int a=10; public void sayhello() { System.out.println("class A"); } } class B extends A { int a=20; public void sayhello() { System.out.println("class B"); } } public class HelloWorld

C#: Casting-Typen dynamisch

Anzahl der Antworten 7 Antworten
Momentan habe ich diesen code-Typ: private void FillObject(Object MainObject, Foo Arg1, Bar Arg2) { if (MainObject is SomeClassType1) { SomeClassType1 HelpObject = (SomeClassType1)MainObject; HelpObject.Property1 = Arg1; HelpObject.Property2 = Arg2; } else if (MainObject is SomeClassType2) { SomeClassType2

Wie zu erkennen ist fehlgeschlagen wirft mit dynamic_cast-operator?

Anzahl der Antworten 3 Antworten
Scott Meyer in seinem Buch Effective C++ sagt dynamic_cast werden verwendet, um sichere Typumwandlungen nach unten oder über eine Vererbungshierarchie. Das heißt, Sie nutzen dynamic_cast, cast von Zeigern oder Referenzen zu Basis-Klasse Objekte in die Zeiger oder

Wie führen Sie ein dynamic_cast mit einem unique_ptr?

Anzahl der Antworten 3 Antworten
Ich habe eine Klassen-Hierarchie wie folgt: class BaseSession : public boost::enable_shared_from_this<BaseSession> class DerivedSessionA : public BaseSession class DerivedSessionB : public BaseSession Innerhalb der abgeleiteten Klasse Funktionen, die ich regelmäßig aufrufen von Funktionen wie diese: Func(boost::dynamic_pointer_cast<DerivedSessionA>(shared_from_this())); Da ich

C++ dynamic_cast - polymorphe Anforderung und downcasting

Anzahl der Antworten 4 Antworten
In der folgende code, bei der Konstruktion obj im Fall 1, wir konstruieren eine derived Klasse, Objekt zu, aber seine member-Funktionen sind nur unzugänglich obj. So, während downcasting (d.h., im Fall 2), mit obj wie die Quelle,

boost::shared_ptr und dynamic cast

Anzahl der Antworten 4 Antworten
Ich habe ein problem mit einem shared_ptr eine Basis-Klasse, ich kann nicht scheinen zu können, rufen Sie die abgeleitete Klasse die Methoden, die bei der Dereferenzierung. Ich glaube der code wird Ausführlicher als ich: class Base :

c ++ dynamic_cast Fehlerbehandlung

Anzahl der Antworten 5 Antworten
Ist es eine gute Praxis im Hinblick auf die dynamic_cast Fehlerbehandlung (außer nicht verwenden, wenn Sie nicht müssen)? Ich Frage mich, wie soll ich über die NULL-und bad_cast es werfen kann. Sollte ich das prüfen? Und wenn

Unterschied im Verhalten bei der Verwendung von dynamic_cast mit Referenz und Zeigern

Anzahl der Antworten 4 Antworten
Ich war die überprüfung des Verhaltens von dynamic_cast und gefunden, dass, wenn es scheitert, std::bad_cast-Ausnahme wird ausgelöst, nur dann, wenn das Ziel ist ein Referenz-Typ. Wenn das Ziel ist ein Zeiger-Typ, dann wird keine exception geworfen von

C ++: "... ist kein polymorpher Typ" bei der Verwendung von boost :: dynamic_pointer_cast

Anzahl der Antworten 3 Antworten
Warum erhalte ich den folgenden Fehler für den folgenden code nicht? 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

Java: Wie kann ich dynamisch eine Variable von einem Typ in einen anderen umwandeln?

Anzahl der Antworten 13 Antworten
ich würde gerne dynamische casting für eine java-variable, die casting-Typ gespeichert ist, in eine andere variable. dies ist regelmäßig Gießen: String a = (String) 5; dies ist, was ich will: String theType = 'String'; String a =

Was sind einige Beispiele für gutes Casting?

Anzahl der Antworten 6 Antworten
Wir oft zu hören/Lesen, dass man vermeiden sollte-dynamic-casting. Ich Frage mich, was wäre 'der guten Nutzung' Beispiele, wie Sie? Edit: Ja, ich bin mir dessen bewusst,das andere thread: es ist in der Tat beim Lesen einer der

dynamic_cast von "void *"

Anzahl der Antworten 5 Antworten
Laut diesevoid* hat keine RTTI-Informationen, also eine Umwandlung von void* ist nicht legal, und es macht Sinn. Wenn ich mich richtig erinnere, dynamic_cast aus void* wurde auf gcc. Können Sie bitte klären. InformationsquelleAutor der Frage dimba |

dynamic_cast mit RTTI deaktiviert

Anzahl der Antworten 3 Antworten
Ich bin neugierig zu wissen, was passiert, wenn das kompilieren von code mit einer dynamischen Besetzung, mit RTTI deaktiviert (entweder mit -fno-rttiauf GCC oder mit /GR- auf visual studio). Funktioniert der compiler "fällt zurück" zu static_cast ?

Was könnte einen dynamischen_cast zum Absturz bringen?

Anzahl der Antworten 6 Antworten
Habe ich ein Stück code so Aussehen : TAxis *axis = 0; if (dynamic_cast<MonitorObjectH1C*>(obj)) axis = (dynamic_cast<MonitorObjectH1C*>(obj))->GetXaxis(); Manchmal stürzt es ab : Thread 1 (Thread -1208658240 (LWP 11400)): #0 0x0019e7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x048c67fb

Leistung von dynamic_cast?

Anzahl der Antworten 4 Antworten
Vor dem Lesen die Frage: Diese Frage ist nicht etwa, wie nützlich es ist, zu verwenden dynamic_cast. Seine nur über seine Leistung. Ich habe mir vor kurzem ein design entwickelt, wo dynamic_cast eine Menge verwendet wird. Bei

Portabel sicher, NULL / Zero zu Dynamic_cast zu übergeben?

Anzahl der Antworten 3 Antworten
Aus Gewohnheit für die überprüfung der null-Zeiger, ich habe mal geschrieben: MyClass * c = someBasePtr ? dynamic_cast<MyClass*>(someBasePtr) : 0; if (c) {... In Kraft, die überprüfung auf einen null-Zeiger vor der übergabe an dynamic cast, und

dynamic_cast und static_cast in C ++

Anzahl der Antworten 9 Antworten
Ich bin ganz verwirrt mit der dynamic_cast - Schlüsselwort in C++. struct A { virtual void f() { } }; struct B : public A { }; struct C { }; void f () { A a;