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

Wywoływanie funkcji z kontenera.

Ostatnio zmodyfikowano 2018-05-08 18:01
Autor Wiadomość
Wuwus1
Temat założony przez niniejszego użytkownika
Wywoływanie funkcji z kontenera.
» 2018-05-08 16:38:00
Chciałem stworzyć program, który działa na zasadzie zdarzeń, które są zbierane do kontenera np. std::vector<>, a potem są wywoływane. Napisałem coś takiego.

C/C++
#include <iostream>
#include <vector>

void Terminator( void( * Funkcja )() )
{
    ( * Funkcja )();
}

void First()
{
    std::cout << "First\n";
}

void Second()
{
    std::cout << "Second\n";
}

int main()
{
    std::vector < void *> Cont;
   
    Cont.push_back( & First );
    Cont.push_back( & Second );
    Cont.push_back( & First );
    Cont.push_back( & First );
    Cont.push_back( & First );
   
   
    for( int i = 0; i < Lol.size(); i++ )
    {
        Terminator( static_cast < void( * )() >( Cont.at( i ) ) );
    }
   
    system( "pause" );
    return 0;
}

Moje pytanie brzmi. Czy istnieje prostszy sposób wywoływania funkcji z kontenera?
P-170958
jankowalski25
» 2018-05-08 17:13:46
Przede wszystkim to się nawet nie kompiluje. A co do upraszczania, to możesz nazwać typ » Kurs C++ » Poziom Xwskaźnika na funkcję lekcja za pomocą słowa kluczowego
typedef
 i odtąd używać go tam, gdzie tego potrzebujesz. Jeśli chodzi o unikanie rzutowań, to trzymaj w kontenerze odpowiedni typ, a nie wskaźnik na cokolwiek.
P-170960
Wuwus1
Temat założony przez niniejszego użytkownika
» 2018-05-08 18:01:05
Nie kompiluje się bo zamiast Cont.size() jest Lol.size(). Sory mój błąd przy zmianie nazw. I dzięki za porady odnośnie uproszczenia.
P-170961
« 1 »
  Strona 1 z 1