我有一個使用模板並可以存儲多個抽象數據類型(ADT)的「存儲庫」(倉庫,稱之爲您想要的)。有關調用具有專門模板的類的困惑
Rep.h
template <typename TAD>
class Repository {
public:
DynamicArray <TAD *> tad; // made a dynamic array myself, also uses templates
// since one ADT has one of the following two functions and the other doesn't
// I decided to not use TAD here
Person *findByName (string name);
Activities* findByDate(string date);
void save (TAD &p);
//etc
}
Rep.cpp
template <>
void Repository<Person>::save(Person &p) throw (RepositoryException) {
@code
}
template <>
void Repository<Activities>::save(Activities& a) throw (RepositoryException) {
@code
}
//etc
現在我有一個控制器,分別處理ADT的,所以我希望創建一個只反映摘要庫數據類型「Person」
我該如何撥打電話?(創建一個具有Person或Activity作爲模板參數的類型庫對象?)
喜歡這個:? (如下圖)
PersonController.h
Repository<Person> *repository;
ActivityController.h
Repository<Activities> *repository;
您似乎在尋找普通的模板專業化,或者這些對於您的任務來說還不夠? - 順便說一句,你爲什麼做你自己的動態數組而不是使用'std :: vector',爲什麼你存儲指針而不是數組中的值?兩者看起來都是非常小的。 – leftaroundabout
@leftaroundabout這是我的作業,我必須做出自己的動態數組(我發現很有趣)。 dynamicArray更像是一個列表(像Python中的列表),我沒有存儲值,因爲我有抽象數據(類)我想存儲類元素,而不是實際的值。 – Kalec