我有一个使用模板并且可以存储多种抽象数据类型 (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 或 Activity 作为模板的存储库类型的对象......参数?)
像这样: ?(以下)
个人控制器.h
Repository<Person> *repository;
活动控制器.h
Repository<Activities> *repository;