virtual-method

    10熱度

    3回答

    我有一個類模板,其中一些方法被定義爲虛擬的,以使我的類的用戶能夠在他的派生類中爲他們提供實現。請注意,在我的模板類中,有一些使用虛擬類的非虛擬方法(應該返回值的虛擬類在非虛擬類中調用)。 你可以給我一個正確的代碼,其中父類的虛擬方法應該返回一個值(但它的實現是在一個子類中提供的)和父類中的虛方法返回的值的簡單示例用於該類的其他方法。因爲我看到某處(例如:Safely override C++ vi

    1熱度

    2回答

    在實現它的類中定義具有與接口方法完全相同的簽名的靜態方法的優點是什麼? class IInterface { public: virtual void fn()=0; } class Impl :IInterface { public: ~Impl(); static void fn(); } Impl::~Impl{ } Impl::fn(

    1熱度

    1回答

    我正在使用boost python創建一個綁定到C++庫。該庫中的許多類都具有接受iterator/const_iterator類型作爲參數的虛方法。我並不特別想公開這些類型,但寧願在接受適當容器的虛擬方法周圍創建一些包裝。我的問題是,在'默認實現'功能中做這個包裝是否安全? 例如 class Test { public: Test(); virtual ~Test();

    4熱度

    2回答

    我知道在基類的構造函數中 - 調用虛方法時 - 調用基方法,而不是派生 - 請參閱Calling virtual functions inside constructors。 我的問題與此主題有關。我只是想知道如果我在Derived類的構造函數中調用virtual方法會發生什麼 - 但是在構造Base部分之前。我的意思是打電話來評估基類構造函數參數的虛方法,見代碼: class Base { p

    6熱度

    4回答

    這是一個顯示虛擬方法的小代碼。 class A { public virtual void F() { Console.WriteLine("A.F"); } } class B: A { public override void F() { Console.WriteLine("B.F"); } } class C: B { new public vi

    4熱度

    2回答

    即使當前實例是派生類,我們如何從基類中的另一個方法調用虛方法? 我知道我們可以從派生類中的方法,通過使用base.Method2()調用方法二在的基地類,但我想要做的就是從其他虛擬方法調用它在基地類。可能嗎? using System; namespace ConsoleApplication1 { class Program { static void Mai

    10熱度

    2回答

    我明白什麼是java方法調用,並且已經實踐了很多使用它的例子。 我想知道這個概念的實際情況或需求是什麼。 如果任何人都可以提供真實世界中使用它的場景,並且如果這個概念不在那裏,會發生什麼?

    3熱度

    1回答

    我想創建一個表示多項式的LinkedList的實現。鏈接列表將成爲「期限」列表。一個術語是Data的一個實現(它是一個帶有方法的抽象類:compareTo()和toString())。 Polynomial類有一個名爲head的變量,我試圖初始化爲Term。我的編譯器說我「不能聲明抽象類型的成員:Term」,但我不認爲Term是抽象的,因爲它是Data(抽象類)的實現。如果你們可以看看這個,讓我知

    2熱度

    2回答

    我有一個C++基類,它聲明瞭兩個不同的簽名的虛擬方法。 只要我重寫派生類中的虛擬方法簽名之一,編譯器(g ++ 4.6.3和g ++ 4.7)就不能再將該方法與同一派生類中的第二個簽名進行匹配。 下面的示例代碼將無法編譯,如果我只定義SPECIALIZE_ONEARG 1。爲了得到它的重新編譯我還必須定義PASSTHRU_TWOARG 1。使用「中繼」的方法,因爲效率不理想因爲真正的類層次結構的要

    8熱度

    6回答

    我有一堆系統,我們打電話給他們A, B, C, D, E, F, G, H, I, J。 它們都有類似的方法和屬性。有些包含完全相同的方法和屬性,有些可能略有不同,有些可能會有很大差異。現在,我爲每個系統都有很多重複的代碼。例如,我有一個爲每個系統定義的名爲GetPropertyInformation()的方法。我試圖找出哪一種方法是減少重複的代碼或以下方法也許一個最好的辦法是不是要走的路: 接口