[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