Re: Включение одной функции в несколько классов
От: rg45 СССР  
Дата: 06.06.08 15:38
Оценка:
Здравствуйте, 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"
}
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.