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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
studyC
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 5
#1

Создание меню с использованием указателей на метод класса - C++

22.04.2012, 21:53. Просмотров 599. Ответов 1
Метки нет (Все метки)

Добрый вечер. Помогите пожалуста разобраться с указателями на метод класса и вызов методов класса через указатель, как в данном коде вызвать метод? запускаю и он не работает. Заранее спасибо!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void file::menu ()
{
    file F;
    F.initialisation(F.FILE_S,1024,300);
    char *labels [] = {"1. New blocks.", "2. Free blocks.", "3. Write.", "4. Read.", "5. Start transaction.", "6. Commit.", "7. Rollback.", "8. Information.", "9. Exit"};
    typedef void (file::*f_ptr)();
    int len = sizeof(labels)/sizeof(labels[0]), position;
    f_ptr interface [] = {&file::new_blocks_menu,&file::free_blocks_menu,&file::write_menu,&file::read_menu,&file::start_transaction_menu,&file::commit_menu,&file::rollback_menu,&file::get_infomation,&file::exit_menu};
 
    while (1)
    {
        for (int i = 0; i < len; i++)
            cout<<labels[i]<<endl;
        cout<<"Enter number of action - ";
        cin>>position;
        if (position < 1 || position > len)
        {
            cout<<"Wrong value."<<endl;
        }
        else
            F.*(interface[position-1])();
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2012, 21:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание меню с использованием указателей на метод класса (C++):

Создание одного массива из другого с использованием указателей - C++
Ошибка 1 error C2440: =: невозможно преобразовать &quot;double *&quot; в &quot;double&quot; 17 Ошибка 2 error C2440: =: невозможно преобразовать &quot;double *&quot;...

Создание класса с использованием библиотеки String - C++
Подскажите как создать класс что бы в объекте использовался тип стринг

Создание класса и использованием функции для выведения информации в консоль - C++
Такая проблема, учитель задал задание с использованием класса и использованием любой функция для выведения информации в консоль по типу...

Создание категорий меню в private класса родителя - C++
Подскажите пожалуйста как можно занести в private класса родителя 7 этих категорий: class Menu{ private: static...

Создание массивов указателей на массивы указателей - C++
Помогите в решении задачи: создал массив указателей на массивы указателей на строки, но компилятор ругается на то что не может...

Создать массив указателей базового класса и присвоить ему адреса каждого из екземпляров класса - C++
Всем привет. Есть условие задачи: Дан базовый класс Base у которого есть метод my_name, метод выводит сообщение This is Base class. От...

1
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.04.2012, 01:09 #2
Вот в студии работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
class Class
{
public:
  void f1() { std::cout << "f1" << std::endl; }
  void f2() { std::cout << "f2" << std::endl; }
};
 
int main()
{
  typedef void (Class::*MethodPtr)();
  MethodPtr methods[] = {&Class::f1, &Class::f2};
 
  Class c;
  (c.*methods[0])();
  (c.*methods[1])();
 
  return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2012, 01:09
Привет! Вот еще темы с ответами:

Как передать в метод класса Menu указатель на метод дочернего класса? - C++
Как передать в метод базового класса указатель на метод дочернего: class Menu() { protected: setCallback(*********); //...

Целью работы является создание программы для обработки набора объектов с использованием класса -контейнера - C++
Целью работы является создание програмки для обработки набора объектов с использованием класса -контейнера динамический массив ( vector...

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса? - C++
я хотел так, но программа просто падает void Student::add(Base** head) { cout &lt;&lt; &quot;I here&quot; &lt;&lt; endl; this-&gt;setName(); //все...

Программа с использованием указателей - C++
пацаны плз помогите написать простую программу с использованием указателей. Буду очень благодарен!


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru