virtual-method

    7熱度

    4回答

    剛開始使用Java。我發現與.NET有許多相似之處,但我發現Java中的所有方法默認都是虛擬的。 所以問題是我能做些什麼來使它們不是虛擬的? final關鍵字是一種正確的解決方案嗎?

    2熱度

    3回答

    我想知道如果我不把override關鍵字放在派生類方法m1()的方法之前,那麼這之前的默認值是什麼,還是會拋出編譯時錯誤? class A { virtual void m1(){} } class B: A { void m1(){} }

    0熱度

    3回答

    我正在調試一個奇怪的問題,其中一個對象VMT突然間似乎指向了基礎對象的方法。 class Base { virtual void foo() {} } class Derived: public Base { void foo() {} } Derived * d = new Derived; ... much complex fettling ...

    7熱度

    3回答

    我在使用C++中的虛函數時遇到了一些麻煩,我可能會在構造函數中濫用它們。問題是,當我將一個組件lib(由我編寫)鏈接到我的最終可執行文件時,即使我已經爲它編寫了一個實現並將其鏈接,虛擬函數仍被標記爲未定義。 我有以下類: template<class BufferType, class ConnectionType, class HandlerType> class UdpConnection

    2熱度

    4回答

    我遇到了一個C#的嘲諷和測試方面的大蠢事。我對這個問題的解決方案是不可取的。 我有三個類一起執行一些功能。使用接口或顯式聲明任何虛方法是沒有意義的,因爲設計並沒有真正需要擴展或多態。任何使類可重用的努力只會使代碼複雜化。 但是,因爲我沒有明確地聲明任何虛擬方法,所以我不能模擬出類並通過框架工作記錄它們的調用。僞代碼(使用Rhino.Mocks)看起來像這樣。 var b = mockRepo.St

    9熱度

    5回答

    想象一下,我有一個名爲Engine的類作爲抽象基類。我也有從它派生的ElectrictEngine和FuelEngine類。 我想創建一個加油引擎的方法。 我是否應該將它作爲基類級別上的抽象方法進行處理,並將其命名爲通用方式,例如fillUpEnergy? 問題是,如果我有一個電動引擎,該方法所需的參數數量與燃油引擎需要傳遞的參數數量不同。所以,該方法的簽名是不同的。 此外,是否有任何智能的方法來

    8熱度

    5回答

    struct A { virtual void foo(); // unused and unimplemented virtual void bar() {} }; int main() { A obj; // ok obj.bar(); // <-- added this edition A* pm = (A*)malloc(siz

    0熱度

    6回答

    我正在爲我的容器類派生一個基類,以便我可以維護一致的接口。目前,它看起來是這樣的: template <typename Datatype> class BaseClass { public: virtual Datatype Foo() = 0; virtual Datatype Bar() = 0; }; template <typename Datat

    3熱度

    2回答

    我以前做過這個 - 只是不記得這個技巧。 如果我有一個抽象類: 公共抽象類崗位 而且一組獲得類: 公共類圖片:發表 我要force派生類實現一種方法,稱爲驗證(),但同時提供核心驗證在後級別。在後公共抽象void驗證(),這將迫使派生類來實現的方法,但後來我如何執行郵政(基地)驗證: 我能創造一個方法? 最終的結果是我希望能夠做到這一點: public class BLL { publ

    0熱度

    1回答

    我創建了一個父類,它調用它自己的虛擬成員。但是這個虛擬成員被子類覆蓋。 class Parent { public: void doSomething() { doVirtual(); } protected: virtual void doVirtual() {} }; class Child : public Parent { protec