dynamic-cast

    0熱度

    2回答

    我有一個類CAbstractNode使用將dynamic_cast,它有5個派生類 5,只有2(特殊)需要一個方法SetValue()和一個構件INT NVAL; //myFunction is virtual function of base(cAbstractNode) implemented in 2 special derived classes myFunction(CAbstract

    -1熱度

    1回答

    動態轉換在其工作的相同功能中失敗。 動態轉換在調用commitTransaction之前工作,在commitTransaction之後失敗。 在commitTransaction中,在執行刪除和新操作的地方調用複製操作符。關於這裏發生了什麼的任何想法?我讀到堆損壞可能會導致dynamic_cast失敗。任何人都可以解釋爲什麼發生這種情況? #include <iostream> #include

    3熱度

    1回答

    在C++中,沒有讓我的析構函數虛擬是否仍然可以下注我的非多態基類的指針/引用?

    1熱度

    1回答

    我有以下代碼。 #include <iostream> using namespace std; class Base { public: virtual int f(){cout<<"Base"<<endl;} }; class Derived:public Base { public: int f(){cout<<"Derived"<<endl;}

    -1熱度

    1回答

    #include <iostream> using namespace std; struct A { virtual void foo() { } }; struct B1 :A { }; int main() { int x = 42; A *a = (A*)&x; try { B1 *b = dynamic_

    1熱度

    1回答

    考慮以下幾點: class MyInterface { /* ... */ }; // has virtual methods and all class MyToolButton : public QToolButton, public MyInterface { /* ... */ }; class MyRadioButton : public QRadioButton, public

    -1熱度

    1回答

    我有一個基類和派生類,如: class Base { public: Base(); virtual doSomthing(); }; class Derivative : class Base { public: Derivative(); virtual doSomthing(); }; 我知道,如果我想從父親到兒子更改運行時我會做 De

    1熱度

    1回答

    我目前在C++中實現不同的opencv機器學習工具在同一個類。因此,我有將超類cv::ml::StatModel的指針向下轉換爲子類cv::ml::SVM(例如)的問題。 在網上教程人們通常認爲的OpenCV分類的執行是這樣的: cv::Ptr<cv::ml::SVM> classifier = cv::ml::SVM::create(); 我想要做的就是在類的構造一個動態轉換。這是我的類變量

    -2熱度

    1回答

    我有這樣的結構: class IIterator : public ICollectible{}; class A: public ICollectible{}; class b: public A{}; class c: public A{}; class d: public A{}; 當我做這樣的事情 IIterator* it = colection->getIterator()

    0熱度

    1回答

    我使用訪問者模式來處理很多不同的AST問題,結果證明它工作得很好。例如,我正在使用它來檢查靜態類型。這在查找確切類型時效果很好,但它不適用於派生類。即如果我們有從Base繼承的Derived,詢問Derived對象是否爲Base失敗。 考慮下面的C++代碼: #include <iostream> #include <functional> #include <memory> using