(遺憾的模糊標題)「基類」模板?
我有各種派生類D1,D2基類B等
此外我有一個模板
template <class T> Storage;
現在,每個派生的類有不同版本的存儲類的
class D1 : public class B {
Storage<int> *myStorage;
void action1();
void specific_D1_action();
// other stuff...
}
class D2 : public class B {
Storage<float> *myStorage;
void action1();
void specific_D2_action();
// other stuff...
}
D1::action1()
和D2::action1()
使用他們respec tive myStorage
並具有完全相同的代碼。但是,各自的myStorage
對象的實際模板參數不同。
對於所有版本的存儲, 是否可以有一種「基類」,以便我可以在基類B(而不是D1,D2,...)中定義myStorage和action1以避免代碼複製?
我想我不能「模仿」基類B,因爲派生類中的具體操作。
(本例中非常簡化 - 在真實情況下,模板的參數是複雜的類)
很難說出你想要的。如果你在'specific_Dx_action'中發佈了一些你期望的代碼,這將會有所幫助。 –
'class D1:public class B'?看到你的代碼,似乎你需要先學習C++的基本語法。 – Nawaz
「我想我不能」模仿「基類B,因爲派生類中的具體操作」,爲什麼?檢查下面的答案,你可以應用B上的模板並擺脫DerivedBase? – PermanentGuest