Witam,
Czy jest możliwość wywołania metody której nazwa nie jest znana w czasie pisania kodu?
Witam,
Czy jest możliwość wywołania metody której nazwa nie jest znana w czasie pisania kodu?
Nie. A kiedy niby jej nazwa "będzie znana"? o_O
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)'
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;
}
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
A tablicy delegatów zrobić nie możesz? Google twoim przyjacielem.