virtual-functions

    -1熱度

    3回答

    我得到了奇怪的代碼,必須擴展它。但是,我決定創建一個模板,而不是複製粘貼很多次。但被一塊可怕的石頭絆倒。 下面是一個例子代碼: template<typename T> class anyClass {}; template<typename T> class Outer : public anyClass<T> { public: using value_t = T;

    2熱度

    4回答

    我有一個類存儲數據的一個固定大小的量 template<size_t SIZE> class Data {...}; 現在我有不同的算法用於生成數據(例如僞隨機發生器): class PseudoRandom1 { template<size_t SIZE> Data<SIZE> generate(); }; class PseudoRandom2 { templat

    -1熱度

    1回答

    我持續發生一個說「純虛函數調用」的錯誤。 經過一番研究後,我發現當從構造函數或抽象基類的析構函數調用純虛方法時,通常會發生此類錯誤。 然而,這不是我的代碼問題,花幾個小時試圖找到解決辦法,我意識到我需要幫助:) 這是基類: class Radnik { string ime; double procenat; Radnik(const Radnik& r) = delete; Radn

    2熱度

    1回答

    假設我們有下面的類與virtual method: struct icountable{ virtual int count() = 0; bool empty(){ return count() == 0; } } struct list : public icountable { ... } 現在假設這可以用CRTP被改寫。應該看起來或

    0熱度

    3回答

    在我的C++基礎知識我有類似如下的 class AbstractA { void Foo() = 0; void Bar() = 0; void Woo() = 0; }; class AbstractB : public AbstractA { void Doh() = 0; }; class Obj1 : public AbstractA {

    0熱度

    1回答

    林試圖創建一個百分比節省程序超市用3繼承的類(PersonData - >CustomerData - >PreferredCustomer)。整個程序必須遵循這個UML圖: 我有第三類問題;特別是在類的第一個構造函數中初始化值。即時得到在Visual Studio中的錯誤信息:和DL「形式參數的重新定義‘’「形式參數霸的重新定義」 這是錯誤的構造: PreferredCustomer(strin

    4熱度

    1回答

    我有一個內部類myIterator,我的模板類linearLinkedList<T>,我想從simpleIterator<T>覆蓋繼承的虛擬方法,但編譯器拒絕它們爲「模板可能不是虛擬的」。不過,根據this question,似乎這應該是可能的,因爲它只取決於班級的類型。例如下面我的代碼中的方法foo是合法的。我如何實現內部類的虛函數? template <class T> class line

    0熱度

    1回答

    我想要拿出一個面向對象的設計,並有難以滿足Liskov替代原則。下面是一個說明性的例子: class Food { public: virtual void printName() { //...... } }; class Fruit : public Food { }; class Meat : public Food { }; cla

    0熱度

    1回答

    如果我同一命名空間下限定在2級不同的類2個用作下面 namespace Cache { /// <summary> /// Cache manager interface /// </summary> public interface ICacheManager { T Get<T>(string key); } }

    0熱度

    2回答

    我希望標題不會混淆。我試圖理解下面的問題,這是由於在C++中定義一個虛擬類的方法而引起的。想象我有一個基類A和派生類B,使得 class A { public: void print() { cout << "A"; } } class B : A { public: void print() { cout << "B"; } } 如果我知道執行下面的代碼,所述