Здравствуйте, Andrew001, Вы писали:
A>Есть некая функция которую нужно сделать элементом нескольких классов
A>1 — это сделать родительский класс в котором и объявить эту функция
A>2 — это сделать глобальную функцию к которой обращаться из промежуточных функций-членов этих классов
A>Оба эти варианта не очень подходят
A>Какие еще есть варианты?
A>Возможно ли это сделать через шаблоны?
Возможно, например:
#include <iostream>
#include <string>
template<typename T, typename V>
void set_value(T& item, const V& value)
{
item.value = value;
}
struct A
{
int value;
};
struct B
{
std::string value;
};
int main()
{
A a;
B b;
set_value(a, 123);
set_value(b, "hello");
std::cout << a.value << std::endl; //output: "123"
std::cout << b.value << std::endl; //output: "hello"
}