Pues bueno, el caso es que acabo de empezar con c++ en la facultad, y en la primera practica, que es hacer una tonteria de unos dados que tomen numeros aleatorios e imprimirlos por pantalla, me lleva dando toda la mañana fallos al compilar, y estoy ya desesperado por que no se que coño pasa, creo que el problema está en el tema de las librerias, pero tengo todo bien instalado en ubuntu (o eso creo)
El archivo principal del programa es este:
#include <iostream>
#include "dados.h"
using namespace std;
using namespace clases;
int main (int argc, char **argv)
{
Dados Ejemplo;
Ejemplo.lanzamiento(Ejemplo);
Ejemplo.dado1(Ejemplo);
Ejemplo.dado2(Ejemplo);
return 0;
}
el archivo donde estan las funciones es este:
#include <ctime>
#include "dados.h"
namespace clases
{
Dados:ados()
{
_dado1 = 0;
_dado2 = 0;
}
Dados Dados::lanzamiento(Dados clase)
{
srand(time(NULL));
clase.dado1 = rand()%(6+1);
clase.dado2 = rand()%(6+1);
return clase;
}
void Dados::dado1(Dados clase)
{
cout<<clase._dado1<< endl;
}
void Dados::dado2(Dados clase)
{
cout<<clase._dado2<<endl;
}
}
Y el archivo .h es este:
#ifndef dados_h
#define dados_h
namespace clases
{
class Dados
{
public:
//Constructores:
Dados();
//Funciones:
Dados lanzamiento (Dados clase);
void dado1(Dados clase);
void dado2(Dados clase);
private:
int _dado1;
int _dado2;
};
}
#endif
Al compilar el error que me da es este:
g++ -I. -g juego.cpp dados.cpp -o juego.exe
dados.cpp: In member function ?clases:ados clases:ados::lanzamiento(clases:ados)?:
dados.cpp:15: error: ?srand? no se declaró en este ámbito
dados.cpp:16: error: ?rand? no se declaró en este ámbito
dados.cpp: In member function ?void clases:ados::dado1(clases:ados)?:
dados.cpp:24: error: ?cout? no se declaró en este ámbito
dados.cpp:24: error: ?endl? no se declaró en este ámbito
dados.cpp: In member function ?void clases:ados::dado2(clases:ados)?:
dados.cpp:30: error: ?cout? no se declaró en este ámbito
dados.cpp:30: error: ?endl? no se declaró en este ámbito
make: *** [compilar] Error 1
- Es como si no puidera usar srand, ni rand ni cout, aunque tanto iostream como ctime estan incluidas e instaladas (he instalado todo con build-essentials.
AYUDA POR FAVOR !!!