Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 1
Регистрация: 14.10.2015
Сообщений: 94
1

Вызов метода из vector(a) в функции main без использования вызова execute внутри класса

20.12.2018, 22:19. Показов 1226. Ответов 2
Метки нет (Все метки)

Добрый день столкнулся с проблемой, что просто не могу вызвать метод из вектора в функции main. Код выглядит след образом.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#pragma once
#include <iostream>
#include <vector>
using namespace std;
 
 
class TestUkazNameMethod
{
public:
    TestUkazNameMethod();
    void Method_one();
    void Method_two();
 
    void Execute(int a);
 
public:
    std::vector<void(TestUkazNameMethod::*)()> TestVector;
};
 
 
///////////////////////////////////////////////////////////////////////
 
 
#include "Test.h"
 
TestUkazNameMethod::TestUkazNameMethod()
{
    TestVector.push_back(&TestUkazNameMethod::Method_one);
    TestVector.push_back(&TestUkazNameMethod::Method_two);
 
}
 
void TestUkazNameMethod::Method_one()
{
    std::cout << "Revolution square." << endl;
}
 
void TestUkazNameMethod::Method_two()
{
    std::cout << "Institute station." << endl;
}
 
/*void TestUkazNameMethod::Execute(int a)
{
    (this->*TestVector[a])();
}*/
 
 
////////////////////////////////////////////////
#include "Test.h"
 
int main()
{
    TestUkazNameMethod *TestObject = new TestUkazNameMethod();
 
         (TestObject->*TestVector[0])();           //не работает!!!!
 
    //TestObject->Execute(0);                  //работает
    //TestObject->Execute(1);
 
    system("pause");
    return 0;
}
Собственно уже целый вечер голову ломаю, как решить данную проблему, но никакие мысли в голову так и не пришли( На англ форумах, либо нашел и не работает, либо вообще ничего не нашел, так что прошу помочь, кто смыслит в данной теме.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2018, 22:19
Ответы с готовыми решениями:

Вызов метода класса Form1 в функции main()
Создаю приложение на Windows Forms. Есть класс Form1: namespace Server { public ref class...

Вызов метода класса из сторонней функции без объявления объекта
Собственно вопрос в топике. Можно? т.е. есть некий класс MyMySQLClass() в котором прописаны...

Вызов метода класса из main
Как вызвать функцию plus в меин? пробовал вариант р3.=р3.plus(p1,p2), но не получилось #include...

Изменения внутри метода класса не отображаются из main
Не писал на c++ уже около года. Сейчас пришлось вернуться. И в первые минуты работы возникла...

2
15110 / 8110 / 1958
Регистрация: 30.01.2014
Сообщений: 13,783
20.12.2018, 23:29 2
Лучший ответ Сообщение было отмечено Ermitash как решение

Решение

Ermitash,
C++
1
(TestObject->*(TestObject->TestVector[0]))();
1
1 / 1 / 1
Регистрация: 14.10.2015
Сообщений: 94
20.12.2018, 23:39  [ТС] 3
Благодарю!!))) Спасибо большое!!)))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2018, 23:39

Вызов метода одного класса внутри другого класса
PHP передача метода, с класса, в другой класс Столкнулся с проблемой не могу передать метод или...

Вызов нестатического метода внутри класса
Здравствуйте! Подскажите пожалуйста, как вызвать внутри класса из одной функции - другую. Вот код:...

Вызов метода класса без создания экземпляра класса.
В общем мне для функционирования одной программы нужно постоянно вызывать метод одного из классов....

Вызов constexpr метода, внутри класса в котором метод и объявлен
Есть статический constexpr метод. Есть статическая constexpr же константа, которая инициализируется...


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

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

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