[eside-ghost] Matriz de Structs c++

Iker Perez de Albeniz - Txupete - txupete en gmail.com
Jue Jun 14 12:57:16 CEST 2007


se me olvidaba.. el makefile:

all: main

main: main.cpp
	@echo 'Building file: $<'
	@echo 'Invoking: GCC C++ Compiler'
	g++ -I/usr/include/mysql -lmultinetdb -O0 -Wall -o"$@" "$<"
	@echo 'Finished building $<'	
	@echo ' '

El 14/06/07, Iker Perez de Albeniz - Txupete - <txupete en gmail.com> escribió:
> ya creo ke la ultima duda...
>
> he creado una clase que se llema MacSessions
>
> el Macsessions.h
> ******************
> #ifndef MACSESSIONS_
> #define MACSESSIONS_
>
> #include <stdlib.h>
> #include <time.h>
>
> #include <multinetdb/DbFactory.h>
>
> #include <multinetdb/MacDB.h>
> #include <multinetdb/Mac.h>
>
> #include <multinetdb/SessionDB.h>
> #include <multinetdb/Session.h>
>
>
>
> using namespace database;
> using namespace std;
>
> class MacSessions
> {
> private:
>
> public:
>
> int Video;
> int Audio;
> int Mail;
> int Internet;
>
> MacSessions();
> void getSessions(std::string);
>
>
> };
>
> #endif /*MACSESSIONS_*/
>
>
> el MacSessions.cpp
> ***********************
> #include "MacSessions.h"
>
> MacSessions::MacSessions(){
>
> }
>
> void MacSessions::getSessions(std::string mac)
> {
>         //Get a pointer to the DbFactory object
>         DbFactory * dbfactory = DbFactory::getInstance();
>
>         //GET de DAO object to de T_Session table
>         MacDB * macDb = dbfactory->getMacDB();
>
>         int contVideo = 0;
>         int contAudio = 0;
>         int contMail = 0;
>         int contInte = 0;
>
>
>         try
>     {
>
>             //SELECT all the sessions from the mac in STL vector
>                 vector<Session> * sessions = macDb->getSession(mac);
>
>                 //print the name of the users
>                 vector<Session>::iterator It = sessions->begin();
>             while ( It != sessions->end() )
>             {
>                 Session a = (Session)(*It);
>                         switch(a.type)
>                         {
>                         case 1: contVideo++;
>                         break;
>                         case 2: contAudio++;
>                         break;
>                         case 3: contMail++;
>                         break;
>                         default: contInte++;
>                         break;
>                         }
>
>                         It++;
>             }
>     }
>     catch (const mysqlpp::BadQuery& er)
>         {
>                 cout << "Exception: " << er.what() << endl;
>         }
>
>         Video = contVideo;
>         Audio = contAudio;
>         Mail = contMail;
>         Internet = contInte;
> }
>
> y el main.cpp dond euso la clase MacSessions:
> *************************************************
> #include "MacSessions.h"
>
> int main(){
>
>         MacSessions mac1;
>         std::string macdemo = "00000-0000";
>         mac1.getSessions(macdemo);
>         cout << mac1.Video;
>
> }
>
>
> me da los siguientes errores al compilar con el eclipse..
>
> main.cpp: undefined reference to
> `MacSessions::getSessions(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> >)'
>
> main.cpp: undefined reference to `MacSessions::MacSessions()'
>
>
> alguien me puede decir que hago mal en la construccion de las clases??
>
> El 13/06/07, Jon Ander Ortiz <jonbaine en gmail.com> escribió:
> > Buenas:
> >
> > El algoritmo del rand necesita una semilla aleatoria para funcionar, si no
> > llamas antes a alguna función que inicialice la semilla, pos siempre dará el
> > mismo número.
> > Cuando ya pones la semilla aleatoria, el rand generará una secuencia de
> > números pseudoaleatorios. Hay que tener en cuenta que para la misma semilla
> > siempre genera la misma secuencia, por eso se utilizan valores del timer
> > como semilla.
> >
> > http://www.cplusplus.com/reference/clibrary/cstdlib/rand.html
> >
> > ahi sale lo que necesitas, además quédate con la página porque sale bastante
> > funciones del C++ documentadas.
> >
> > Un saludete:
> > Jonan
> >
> >
> > El día 13/06/07, Iker Perez de Albeniz - Txupete - <txupete en gmail.com>
> > escribió:
> > > Bueno ahora tengo otra dudilla.. estoy intentando generar un valor
> > > aleatorio entre 0 y 50
> > >
> > > mirando en google aparece la funcion:
> > >
> > > rand() % 50 +1
> > >
> > >
> > > pero me genera un numero aleatorio mayor de 50 y ademas siempre el
> > mismo...
> > >
> > >
> > > si alguien me puede decir como generar el numero aleatorio y que
> > > librerias incluir...
> > >
> > >
> > > gracias.
> > >
> > > El 12/06/07, albertito <atetinho en gmail.com> escribió:
> > > > Alfredo Beaumont escribió:
> > > > > Ar, 2007eko Ekaren 12a(e)an, albertito(e)k idatzi zuen:
> > > > >
> > > > >> totalmente de acuerdo, pero como está trabajando en C++... De todos
> > > > >> modos, Stroustrup recomienda el uso de clases frente a structs :). y
> > ya
> > > > >> que nos ponemos... XD, que si el acceso a los datos se realiza a
> > través
> > > > >> de funciones miembro, que la inicialización queda centralizada en un
> > > > >> único punto (por lo tanto, único punto de fallo), etc... :P
> > > > >>
> > > > >
> > > > > Precisamente porque estamos hablando de C++, todas esas cosas se
> > pueden
> > > > > obtener con las estructuras también, tienen constructores, funciones
> > miembro,
> > > > > etc. La única diferencia entre una estructura y una clase en C++ es
> > que las
> > > > > estructuras el acceso por defecto es public y en las clases es
> > private.
> > > > >
> > > > >
> > > > ya, ya; pero por eso mismo decía lo anterior: "Stroustrup recomienda el
> > > > uso de clases frente a structs". he puesto la frase para evitar
> > > > polémicas o porque igual no me había expresado bien anteriormente.
> > > > además, parece que estamos discutiendo el uso de clases frente a
> > > > estructuras, y no es la intención (por lo menos, la mía).
> > > > > Saludos
> > > > >
> > > > un saludo!! ;)
> > > >
> > > > --
> > > > albertito
> > > > Blog Personal: http://www.ifelsedeveloper.blogia.com
> > > > Página Personal: http://atetinho.googlepages.com/home
> > > > C.A.S: http://www.ajedrezsanturtzi.com
> > > >
> > > > IMPORTANTE:
> > > > Por favor, si me mandas correos con copia a varias personas, pon mi
> > dirección de correo en copia oculta (CCO), para evitar que acabe en montones
> > de sitios, eliminando mi privacidad, favoreciendo la propagación de virus y
> > la proliferación del SPAM.
> > > >
> > > > _______________________________________________
> > > > eside-ghost mailing list
> > > > eside-ghost en deusto.es
> > > > https://listas.deusto.es/mailman/listinfo/eside-ghost
> > > >
> > > _______________________________________________
> > > eside-ghost mailing list
> > > eside-ghost en deusto.es
> > > https://listas.deusto.es/mailman/listinfo/eside-ghost
> > >
> >
> >
> > _______________________________________________
> > eside-ghost mailing list
> > eside-ghost en deusto.es
> > https://listas.deusto.es/mailman/listinfo/eside-ghost
> >
>


Más información sobre la lista de distribución eside-ghost