Bei run-timeInnern base class, wie die aktuellen Kind Klassennamen zu finden?
Bei run-timeInnern base class, wie die aktuellen Kind Klassennamen zu finden?
Ich muss die initializeMethode der übergeordneten Klasse innerhalb der geerbten Klasse MyModelaufrufen, anstatt sie wie heute vollständig zu überschreiben. Wie könnte ich das machen? So sieht mein Code gerade aus: BaseModel = Backbone.Model.extend({ initialize: function(attributes, options) { //...
Ich habe folgenden Code: namespace A { struct Foo { int a; }; } struct Foo { int b; }; struct Bar : public A::Foo { Bar(Foo foo) { c = foo.b; } int c; }; C ++ - Compiler beschweren sich bei "c = foo.b", weil A :: Foo kein Mitglied namens b hat. Wenn ich den Typ des Bar-Parameters mit ::...
Soweit ich weiß, hängt die Größe einer Klasse in C ++ von den folgenden Faktoren ab: Größe aller nicht statischen Datenelemente. Reihenfolge der Datenmitglieder. Ob das Auffüllen von Bytes aktiviert ist oder nicht. Größe seiner unmittelbaren Basisklasse. Die Existenz virtueller Funktionen....
Ich habe den folgenden Code geschrieben, der verwendet, unique_ptr<Derived>wo a unique_ptr<Base>erwartet wird class Base { int i; public: Base( int i ) : i(i) {} int getI() const { return i; } }; class Derived : public Base { float f; public: Derived( int i, float f ) : Base(i), f(f) {}...
Die Optimierung der leeren Basis ist großartig. Es gibt jedoch die folgende Einschränkung: Eine leere Basisoptimierung ist verboten, wenn eine der leeren Basisklassen auch der Typ oder die Basis des Typs des ersten nicht statischen Datenelements ist, da die beiden Basisunterobjekte desselben...
Das Kopfgeld läuft in 2 Tagen ab . Antworten auf diese Frage erhalten eine Prämie von +500 . Paul Panzer möchte eine bestehende Antwort belohnen . Nehmen wir an, wir möchten eine Klassenfamilie erstellen, bei der es sich um unterschiedliche Implementierungen oder Spezialisierungen eines...
#include <iostream> using namespace std; class Car { public: ~Car() { cout << "Car is destructed." << endl; } }; class Taxi :public Car { public: ~Taxi() {cout << "Taxi is destructed." << endl; } }; void test(Car c) {} int main() { Taxi taxi; test(taxi); return 0; }...
MSVC, Clang und GCC sind sich in diesem Code nicht einig: struct Base { int x; }; struct Der1 : public Base {}; struct Der2 : public Base {}; struct AllDer : public Der1, public Der2 { void foo() { Der1::Base::x = 5; } }; Godbolt GCC: <source>: In member function 'void AllDer::foo()':...
In einer Klasse, Bdie von einer Klasse erbt A, ist es möglich, eine usingDeklaration zu verwenden, um Mitglieder Ain Bsogar Vorlagen wie diese zu bringen: struct A { template <typename T> void foo(); }; struct B : private A { using A::foo; }; Aber kann es für Konvertierungsvorlagen gemacht...
In diesem Beispiel werden Klassen Foound Baraus einer Bibliothek bereitgestellt. Meine Klasse Bazerbt von beiden. struct Foo { void do_stuff (int, int); }; struct Bar { virtual void do_stuff (float) = 0; }; struct Baz : public Foo, public Bar { void func () { do_stuff (1.1f); // ERROR HERE...
Ist dieser Code legal? class Base1 { }; class Base2 { public: virtual ~Base2() { if (!dynamic_cast<Base1*>(this)) std::cout << "aaaa" << std::endl; } Base2() { } }; class MyClass: public Base1, public Base2 { public: MyClass() { } virtual ~MyClass() { std::cout << "bbb"...
Wir alle wissen, dass bei Verwendung einer einfachen Einzelvererbung die Adresse einer abgeleiteten Klasse mit der Adresse der Basisklasse übereinstimmt. Mehrfachvererbung macht das unwahr. Macht die virtuelle Vererbung das auch falsch? Mit anderen Worten, ist der folgende Code korrekt: struct A...
Meine Klasse erbt von mehreren Basen, von denen eine ist std::enable_shared_from_this. Muss es die erste Basis sein? Angenommen, der folgende Beispielcode: struct A { ~A(); }; struct B { ~B(); }; struct C : A, B, std::enable_shared_from_this<C> {}; std::make_shared<C>(); Wenn...