Получение поля класса с помощью шаблона
От: Analitic Россия  
Дата: 25.08.04 07:40
Оценка:
Хотелось бы иметь такой вариант по аналогии с mem_fun, которая для класса вызывает определенную член этого класса функцию,написать универсальную функцию, ну либо функтор, который бы получал значение переменной члена класса по его имени.
Код привожу ниже:
Для функции
class a
{
public:
int b(){return 555};
};

template<typename A>
int doProcessing(
A& a,
void (A::*method)() // Передаем указатель на функцию
)
{
return (a.*method)(); // Непосредственно вызываем ее
}

main(...)
{
A a;
int i;

i = doProcessing(a, A::b); // Вызвали нужную функцию

};
Для обычного члена класса — переменной
class a
{
public:
int b;
};

template<typename A>
int doProcessing — а вот тут и сама задача, как описать функцию для получения значения переменной члена класса


main(...)
{
A a
int i;
i = doProcessing(a, A::b); // Получили нужный член класса
};

Кому интересно для чего это может понадобиться могу привести пример.
Учиться, учиться и еще раз учиться...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.