Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tablice wskaźników na funkcje

Ostatnio zmodyfikowano 2015-04-03 14:32
Autor Wiadomość
snajperek130
Temat założony przez niniejszego użytkownika
Tablice wskaźników na funkcje
» 2015-03-31 19:33:48
Witam, proszę o pomoc, jak zdefiniowac wskaznik mogacy pokazywac na tablice wskaznikow do funkcji?? Robie to jakos tak, ale pisze, ze zly szyk ...
C/C++
bool( * wsk[ 6 ] )() = { & do_gor, & do_dolu, & do_przodu, & do_tylu, & obrot_w_lewo, & obrot_w_prawo };
void * wskk[ 20 ] =& wsk;

Chcialbym wpisac do tablicy wskaznikow wskk odpowiednie wskazniki do odpowiednich funkcji i pozniej wypisac je w forze :)
P-129662
pekfos
» 2015-03-31 21:22:34
C/C++
bool( *( * wskk )[ 6 ] )() =& wsk;
Tylko po co?

Chcialbym wpisac do tablicy wskaznikow wskk odpowiednie wskazniki do odpowiednich funkcji i pozniej wypisac je w forze :)
A co nie tak z wsk? Tam też masz wskaźniki na funkcje.
P-129687
snajperek130
Temat założony przez niniejszego użytkownika
» 2015-04-03 12:01:16
dobra, zmienilem troche, chodzi mi o cos takiego:
C/C++
#include<iostream>
using namespace std;
void obrot_w_prawo() { cout << "Obrot w prawo..." << endl; }
void obrot_w_lewo() { cout << "Obrot w lewo..." << endl; }
void do_przodu() { cout << "Do przodu..." << endl; }
void do_tylu() { cout << "Do tylu..." << endl; }
void do_gory() { cout << "W gore..." << endl; }
void do_dolu() { cout << "W dol..." << endl; }

int main()
{
    void( * wsk[ 6 ] )() = { & obrot_w_lewo, & obrot_w_prawo, & do_dolu, & do_gory, & do_przodu, & do_tylu };
    void( * wskk[ 20 ] )();
   
   
    // do wskk chcialbym wpisac odpowiednie funkcje z wsk, a pozniej wypisac wszystkie w forze, np tak:
    for( int i = 0; i < 20; i++ )
    {
        cout << wskk[ i ];
    }
   
    return 0;
}
P-129970
Monika90
» 2015-04-03 12:07:52
co za problem?
C/C++
wskk[ 0 ] = wsk[ 2 ];
wskk[ 1 ] = wsk[ 0 ];
//itd...

C/C++
cout << wskk[ i ];
funkcji nie da się wypisać, funkcje można wywołać
P-129973
snajperek130
Temat założony przez niniejszego użytkownika
» 2015-04-03 12:19:06
dobra, to jak je pozniej wywolac, zeby wszystkie sie po kolei wypisaly?
P-129975
Monika90
» 2015-04-03 12:21:48
C/C++
for( auto f: wskk )
     f();

P-129977
snajperek130
Temat założony przez niniejszego użytkownika
» 2015-04-03 12:30:59
dzieki wielkie, zczailem :D
C/C++
#include<iostream>
using namespace std;
void obrot_w_prawo() { cout << "Obrot w prawo..." << endl; }
void obrot_w_lewo() { cout << "Obrot w lewo..." << endl; }
void do_przodu() { cout << "Do przodu..." << endl; }
void do_tylu() { cout << "Do tylu..." << endl; }
void do_gory() { cout << "W gore..." << endl; }
void do_dolu() { cout << "W dol..." << endl; }

int main()
{
    void( * wsk[ 6 ] )() = { & obrot_w_lewo, & obrot_w_prawo, & do_dolu, & do_gory, & do_przodu, & do_tylu };
    void( * wskk[ 20 ] )();
    int numer;
    for( int i = 0; i < 20; i++ )
    {
        cout << "Podaj numer od 0 do 5: ";
        cin >> numer;
        wskk[ i ] = wsk[ numer ];
        cout << flush;
    }
   
    for( int i = 0; i < 20; i++ )
    {
       
        ( * wskk[ i ] )();
    }
   
   
   
    return 0;
}
P-129978
snajperek130
Temat założony przez niniejszego użytkownika
» 2015-04-03 12:34:16
Monika90 mozesz mi jeszcze napisac, co oznacza dokladnie twoj kod, tzn ten??:
C/C++
for( auto f: wskk )
     f();

P-129979
« 1 » 2
  Strona 1 z 2 Następna strona