Tag: static-cast
Ein C++ – cast-operator zum konvertieren von einem Typ zu einem anderen, mit nur Informationen über den statischen Typ des Objekts geworfen
1
Antworten
Ich versuche, static_cast ein interface-Objekt in ein Objekt der abgeleitete Klasse erbt die Schnittstelle. Ich erhalte eine Fehlermeldung 'static_cast' : cannot convert from 'IInherit *' in 'cDerived *' Der abgeleiteten Klasse und interface sind im folgenden format.
1
Antworten
Siehe code unten. a) ist in diesem Fall (einfache Vererbung, keine virtuellen Mitglieder), die statische cast-in B::df() haben keine overhead (auch immer)? Ich fand einige widersprüchliche Antworten auf ähnliche Fragen, deshalb Frage ich... b) ich dachte über
3
Antworten
Habe ich eine Art definition von typedef vector<Object*> ObjList; ich habe auch eine Funktion vector<BigObject*>* ObjectBox::getBigObjectList();. BigObject ist inhertied von Object Was ich wollte, zu tun ist, um eine vector<BigObject*>* aus getBigObjectList() und konvertieren Sie es in
6
Antworten
Betrachten Sie den folgenden code: struct Base {}; struct Derived : public virtual Base {}; void f() { Base* b = new Derived; Derived* d = static_cast<Derived*>(b); } Dies ist verboten, durch die standard ( [n3290: 5.2.9/2]
4
Antworten
dies ist mein Erster "test" mit static_cast, die ich nie gemacht habe, also bitte Geduld mit mir (ich bin sehr neu in c++, erklärte vor 3 Tagen) //ConsoleApplication3.cpp : Defines the entry point for the console application.
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
3
Antworten
Angesichts der folgenden code (und die Tatsache, dass VirtualAlloc() gibt einen void*): BYTE* pbNext = reinterpret_cast<BYTE*>( VirtualAlloc(NULL, cbAlloc, MEM_COMMIT, PAGE_READWRITE)); warum ist reinterpret_cast gewählt statt static_cast? Früher dachte ich, dass reinterpret_cast ist OK für z.B. casting-Zeiger zu
5
Antworten
Wenn ich versuche, mit einem static_cast, cast-einem double* auf einen int*, bekomme ich die folgende Fehlermeldung: invalid static_cast from type ‘double*’ to type ‘int*’ Hier ist der code: #include <iostream> int main() { double* p = new
1
Antworten
Fand ich den folgenden code in Qt und ich bin ein bisschen verwirrt, was hier passiert. Besonders, was reinterpret_cast<T>(0)? template <class T> inline T qobject_cast(const QObject *object) { //this will cause a compilation error if T is
4
Antworten
Was ist das äquivalent von einem static_cast mit boost::shared_ptr? In anderen Worten, wie muss ich die umschreiben die folgenden Base* b = new Derived(); Derived* d = static_cast<Derived*>(b); bei der Verwendung shared_ptr? boost::shared_ptr<Base> b(new Derived()); boost::shared_ptr<Derived> d
6
Antworten
Betrachten Sie den folgenden code: struct Base {}; struct Derived : public virtual Base {}; void f() { Base* b = new Derived; Derived* d = static_cast<Derived*>(b); } Dies ist verboten, durch die standard ( [n3290: 5.2.9/2]
3
Antworten
Anscheinend ist der compiler hält Sie für nicht Verwandte Arten und damit reinterpret_cast erforderlich ist. Warum ist das die Regel? InformationsquelleAutor der Frage Nick | 2012-04-14
4
Antworten
Beide static_cast und reinterpret_cast scheinen gut zu funktionieren für casting void* auf einen Zeiger-Typ. Gibt es einen guten Grund für einen über den anderen? InformationsquelleAutor der Frage Andy | 2008-11-21
7
Antworten
Habe ich drei Klassen: class A {}; class B : virtual public A {}; class C : virtual public A {}; class D: public B, public C {}; Versucht, eine statische Besetzung von A* zu B* bekomme
7
Antworten
Gibt es irgendeinen Grund zu bevorzugen static_cast<> über C-style casting? Sind Sie äquivalent? Ist Ihr jede Art von speed-Unterschied? Kommentar zu dem Problem Verwandte: stackoverflow.com/questions/103512/... Kommentarautor: Flow InformationsquelleAutor der Frage dicroce | 2009-10-22