【发布时间】:2014-06-21 11:01:37
【问题描述】:
我在下面的示例中有三个 getColors 函数。
问题:如何将三个 getcolors 函数转换为一个泛型函数?
struct EcvColorMap{
vector<Scalar> getColors(){
vector<Scalar> result;
//....
return result;
}
};
struct Scalar{
int val[3];
};
vector<Scalar> getColors(vector<Scalar> colors){
return colors;
}
vector<Scalar> getColors(Scalar color){
return{ color };
}
vector<Scalar> getColors(EcvColorMap color_map){
return color_map.getColors();
}
【问题讨论】:
-
您可以制作一个通用的并根据需要对其进行专门化,但它们完全不同,您最好只拥有三个功能。
-
您为什么要这样做?拥有这三个重载看起来是正确的设计。