Witam.
Czy wywoływanie funkcji klasy przez szablon funkcji jest odpowiednim rozwiązaniem w przypadku gdy kilka klas ma wspólne metody?
Rozwiązanie to w pełni działa prawidłowo, więc pod tym względem nie ma problemu, jednak jestem ciekawy czy można to napisać w lepszy sposób niż podany przeze mnie.
#include <vector>
class A{
public:
std::vector<int> Calculate_Sizes(){
std::vector<int> Sizes;
//...
return Sizes;
}
};
class B{
public:
std::vector<int> Calculate_Sizes(){
std::vector<int> Sizes;
//...
return Sizes;
}
};
template <typename T> void Show(std::vector<T> &);
int main() {
std::vector<A> a;
std::vector<B> b;
//...
Show(a);
Show(b);
return 0;
}
template <typename T> void Show(std::vector<T> &Objects){
for (auto &TB_01 : Objects){
std::vector<int> Sizes = TB_01.Calculate_Sizes();
//...
}
//...
}