【发布时间】:2023-03-25 00:09:01
【问题描述】:
我想要一个基类,其数据类型将在派生类中定义。
伪代码
class Base{
public:
void Enroll(vector<int> v){
feature_list.emplace_back(ExtractFeature1(v));
}
vector<double> Compare(vector<int> v){
FeatureType2 ft2 = ExtractFeature2(v);
vector<double> scores;
for (auto &ft1:feature_list){
scores.emplace_back(Compare(ft1, ft2));
}
return scores;
}
protected:
vector<FeatureType1> feature_list;
virtual FeatureType1 ExtractFeature1(vector<int> v)=0;
virtual FeatureType2 ExtractFeature2(vector<int> v)=0;
virtual double Compare(FeatureType1 f1,FeatureType2 f2)=0;
}
因此,每个派生类都将实现不同的提取和比较特征的方式。
我不知道如何在Base 类中为FeatureType1 和FeatureType2 设置一些占位符类型,然后强制Derived 类定义它们。任何建议或指导将不胜感激。
【问题讨论】:
标签: c++ class-design