Форум программистов, компьютерный форум CyberForum.ru

Массив указателей на члены класса - C++

Восстановить пароль Регистрация
 
virtus
19 / 19 / 7
Регистрация: 23.09.2013
Сообщений: 327
05.11.2013, 10:23     Массив указателей на члены класса #1
Здравствуйте,


подскажите, пожалуйста, как корректно использовать массив указателей на члены класса.

list.h

Объявление класса list:

C++
1
2
3
4
5
6
7
8
9
10
class List
{
    size_t m_size;//количество эффективных элементов в списке
public:
    void Sort(SortingType);//сортировка по возрастанию площади объекта/по цвету/по удалению от начала координат
        bool LessYardage(int, int);//сравнение по возрастанию площади
    bool LessColor(int, int);//сравение по возврастанию цвета
    bool LessRemote(int, int);//сравнение по удалению от начала координат
    void Swap(int, int);//перестановка
};
list.cpp

Определение методов:

C++
1
2
3
4
5
6
7
8
9
10
11
12
void List::Sort(SortingType Type)
{//сортировка по возврастанию площади объекта; цвета; удаления от начала координат.
    bool (List::*LessAr[])(int, int) = {LessYardage, LessColor, LessRemote}; - [B]определение и инициализация массива указателей на методы класса List[/B]
    for (int i = 0; i < m_size; i++)
    {//i - номер текущего шага
        for (int j = i + 1; j < m_size; j++)//цикл выбора наименьшего элемента
            if (LessAr[Type](i, j)) - здесь ошибка
 [B]expression preceding parentheses of apparent call must have (pointer-to-) function type[/B]
            {
            }
    }
}
Задаю массив на методы класса, потому что метод Sort() должен сортировать список в зависимости от параметра.
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 10:23     Массив указателей на члены класса
Посмотрите здесь:

C++ Массив указателей на функции члены
Двухмерный массив указателей из элементов объектов класса C++
C++ Объявить массив указателей на функции-члены
Массив указателей на методы класса C++
Массив указателей на методы класса C++
C++ Поменять местами в последовательности наибольший и наименьший члены с помощью указателей
C++ Динамический массив указателей на объекты класса
C++ Массивы указателей на функции-члены не работают

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
05.11.2013, 10:29     Массив указателей на члены класса #2
virtus, объект, для которого вызывается метод забыл; видимо, так:
C++
1
if ((this->*LessAr[Type])(i, j))
virtus
19 / 19 / 7
Регистрация: 23.09.2013
Сообщений: 327
05.11.2013, 10:34  [ТС]     Массив указателей на члены класса #3
Да, все верно. Спасибо, большое.
Yandex
Объявления
05.11.2013, 10:34     Массив указателей на члены класса
Ответ Создать тему
Опции темы

Текущее время: 11:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru