[c++/cli] Wywołanie metody

0

Witam,

Czy jest możliwość wywołania metody której nazwa nie jest znana w czasie pisania kodu?

0

Nie. A kiedy niby jej nazwa "będzie znana"? o_O

0

W czasie działania programu zostanie wylosowana jakaś liczba która wchodzi w skład nazwy metody.

np. zostanie wylosowana liczba 2. Powinna zostać wywołana metoda
button2->Click(...

Skoro się tak nie da to mógłby mi ktoś "powiedzieć" jak utwożyć tablicę metod?

System::Void (*tabPrzyciskow[2])() = {button1_Click(sender,es),button2_Click(sender,es)};

Próbuję w ten sposób ale niestety jest błąd :-/
cannot convert from 'void' to 'void (__clrcall *)(void)'

0

Mi coś takiego przechodzi:

#include <iostream>
#include <cstdlib>

using namespace std;

void func1() {
	cout << "func1()\n";
}

void func2() {
	cout << "func2()\n";
}

int main( int argc, char* argv[] ) {

	srand( static_cast< int > ( time( NULL ) ) );

	void (*tab[2])() = {&func1, &func2};

	tab[rand()%2]();

	return 0;
}
0

Mój kod wygląda tak:

			
void  (*tabPrzyciskow[4])(System::Object^  sender, System::EventArgs^  e) ;
tabPrzyciskow[0] = &button1_Click;
tabPrzyciskow[0](sender,es);

W 2 linijce mam błąd "illegal operation on bound member function expression". Co robię źle??:)

Dzięki za odpowiedz

0

A tablicy delegatów zrobić nie możesz? Google twoim przyjacielem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1