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

Jak dołączyć funkcję srand(time(NULL)); w bibliotece zewnętrznej

Ostatnio zmodyfikowano 2012-06-17 16:20
Autor Wiadomość
McAffey
Temat założony przez niniejszego użytkownika
Jak dołączyć funkcję srand(time(NULL)); w bibliotece zewnętrznej
» 2012-06-17 15:59:43
Witam. Piszę sobie drobną bibliotekę która wykonuje różne podstawowe czynności, a dzięki której kod który potem piszę jest odrobinę ładniejszy. Dodaję teraz do niej funkcję losuj();, która wygląda następująco :

C/C++
int losuj( int przedzial_od, int przedzial_do )
{
    int liczb_w_przedziale;
   
    liczb_w_przedziale = przedzial_do - przedzial_od + 1;
   
    return( rand() % liczb_w_przedziale ) + przedzial_od;
}

Jednak mam problem z linijką :
srand( time( NULL ) );
.
Jak wiadomo, dodanie jej wewnątrz ciała funkcji nie przynosi spodziewanych efektów (losowana liczba jest tak czy siak cały czas ta sama). Gdy dodaję ją przed funkcją, to oczywiście efekt jest taki, jakbym próbował dodać ją w normalnym programie przed main'em, czyli otrzymuję error :

expected constructor, destructor, or type conversion before '(' token|


Żeby funkcja działała poprawnie, gdy odwołuję się do niej w jakimś programie, oprócz dodania swojej biblioteki muszę dodać na początku programu tę linijkę (
srand( time( NULL ) );
) a w związku z tym muszę zincludować jeszcze :

C/C++
#include <ctime>
#include <cstdlib>

Wiecie może jak mógłbym rozwiązać ten problem w taki sposób, żeby potem w danym programie musieć includować jedynie swoją bibliotekę a żeby funkcja losuj(); działała poprawnie ? Z góry dzięki za pomoc :)
P-58608
kampar
» 2012-06-17 16:10:45
napisz w swojej bibliotece osobną funkcję do pobierania ziarna
P-58609
McAffey
Temat założony przez niniejszego użytkownika
» 2012-06-17 16:16:44
No tak, że też sam na to nie wpadłem. Wystarczyło tak jak kolega kampar polecił, dodać w bibliotece :

C/C++
void ustaw_generowanie()
{
    srand( time( NULL ) );
}

Dzięki wielkie za pomoc, temat zamykam :)
P-58610
PanPremium
» 2012-06-17 16:20:15
rand()
 i tak wymaga
cstdlib
P-58611
« 1 »
  Strona 1 z 1