Указатели на функции

Материал из SEWiki
Версия от 23:51, 13 мая 2011; Кристина Курьян (обсуждение | вклад) (Новая страница: «Указатели на функции в С++ Одно из отличие С и С++ - в С++ есть перегрузка. Тогда получается F f =…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Указатели на функции в С++ Одно из отличие С и С++ - в С++ есть перегрузка. Тогда получается F f = qsort; // будет вызываться, что подойдет лучше всего Вопрос: Как происходит работа с шаблонными функциями? Ответ: Рассмотрим пример:


Вопрос: Как получить указатели на члены класса? Ответ: Рассмотрим пример: struct Person { int m_age; int m_salary; string m_name; string name() { return m_name; } } Тогда int Person::(*p) = &Person::m_age; string (Person::*f)() const = &Person::name;

Далее имеем Person pers; (pers.*p) = 10; (pers.*f)();

Вопрос: Мы имеем указатель на мембер класса. Можем ли мы его передавать как параметр функции? Ответ: Да, можем. К примеру,

struct by_field { by_field(int Person::*field) }

Замечание: Указатели на мемберы не приводяться ник чему. Они могут проверяться на равенство 0.