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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При head->v1=NULL; программу глючит http://www.cyberforum.ru/cpp-beginners/thread998314.html
Заношу данные с помощью create(void) и пытаюсь редактировать с помощью void del(void), она удаляет всех неуспевающих студентов. Так вот, если в списке все студенты неуспевающие или только 1 неуспевающий и больше никого,то происходит сбой. (P.S. Не совсем понял,как работает двусвязный список.) #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> struct spis {char f;...
C++ с паскаля на с++ Всем добрый день. помогите перевести с паскаля на с++. Буду очень благодарен Program zarplata; uses dos,crt,BD; type Tbass=record name:string; zarplat:real; end; Tmass=array of tbass; var ZarpFile:file of tbass; work:tbass; http://www.cyberforum.ru/cpp-beginners/thread998313.html
Лабораторная работа номер 5 задание 1! Открыть файл, имя которого задается с клавиатуры. Посчитать и вывести на эк-ран количество байт в этом файле C++
Лабораторная работа номер 5 задание 1!!!! Открыть файл, имя которого задается с клавиатуры. Посчитать и вывести на эк-ран количество байт в этом файле. !!за. быстрый ответ отблагодарю
Принадлежит ли точка окружности C++
Нужно было написать программу определяющию принадлежит ли точка окружности { setlocale(LC_ALL,"RUS"); float x, y, r; printf ( " Введите x, y, r:" ); scanf ( "%f%f%f", &x, &y, &r ); if ( x*x+y*y<=r*r ) printf ("Принадлежит"); else
C++ Задача на с++. Сортировка массивов. Входные данные читать из файла! http://www.cyberforum.ru/cpp-beginners/thread998302.html
:help: Помогите пожалуйста написать программу, по данной задаче. Дана целочисленная матрица A = {aij}, где 1≤ i ≤n; 1≤ j≤ m. Выбрать строки матрицы, среди элементов которых есть простые числа, и отсортировать их по убыванию максимальных элементов таких строк. Если таких строк в матрице нет, выдать сообщение. Заранее, огромное спасибо!!!
C++ Посчитать расстояние между точками прямой Здравствуйте,помогите пожалуйста.даны два списка х1,х2,...-1е координаты точек Прямой и у1,у2,...- 2е координаты точек Прямой,нужно посчитать расстояние между точками ((х1,у1)и (х2,у2),(х2,у2)и (х3,у3),....)результаты забить в список. делала через d=sqrt( ((x2-x1)*(x2-x1))*((y2-y1)*(y2-y1)));но толькооо между двумя точками,а как рекурсивно это сделать и со списком не получается подробнее

Показать сообщение отдельно
virtus
19 / 19 / 7
Регистрация: 23.09.2013
Сообщений: 327

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

05.11.2013, 10:23. Просмотров 423. Ответов 2
Метки (Все метки)

Здравствуйте,


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

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() должен сортировать список в зависимости от параметра.
Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru