• Jueves 9 de Mayo de 2024, 21:39

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - rgpsolocodigo

Páginas: [1]
1
Visual C++ / Re: Clases abstractas
« en: Lunes 13 de Abril de 2009, 21:27 »
MM, excelente. No se si eternal pero si idol

2
Visual C++ / Re: Clases abstractas
« en: Lunes 13 de Abril de 2009, 20:29 »
MM creo no ser claro, este seria el codigo :

#include "iostream.h"

class LN
{

// Declaration of member variables

public:
char LNName[10];
char LNRef[30];
char Data[100];
struct {float ctVal,stVal,q,t;} Pos;

    // Constructors and destructor
LN(){};
~LN(){};
};



class XCBR
{

// Declaration of member variables

public:
int b;

    // Constructors and destructor
XCBR(){};
~XCBR(){};
};

class LD
{

// Declaration of member variables

public:
char LDName[30];
char LDRef[30];
char LogicalNode[100];

// This could be controled by an "if" sentence
//TVTR TVTR1, TVTR2, TVTR3;
//TCTR TCTR1, TCTR2, TCTR3, TCTR4;
LN *LN;


    // Constructors and destructor
LD()
{
//LN = new XCBR;





}
;
~LD(){};
};

void main()
{

LD LD;
XCBR *temp = (XCBR*)LD.LN;
cout << temp->LNName << endl;
}



pero ahora con temp veo al atributo b de la clase XCBR pero no veo los atributos de LN, estoy equivocado?

3
Visual C++ / Re: Clases abstractas
« en: Miércoles 8 de Abril de 2009, 22:04 »
No entiendo la linea de codigo que me pasaste.

Yo creia que al hacer:

LN *LN;
LN = new XCBR;

entonces ahora el objeto LN tenia tambien los atributos de XCBR, veo que esto no es asi, quizas le erre de tema y no se hace con clases abstractas. El tema es que tengo muchos tipos de LN y algun metodo para hacer esto me simplificaria todo

4
Visual C++ / Clases abstractas
« en: Miércoles 8 de Abril de 2009, 20:54 »
Tengo la clase LD que contiene a otra LN, a su vez LN puede ser de diferentes clases, por lo que estoy intentando utilizar clases abtractas, defino a LN como clase abstracta y a otras (por ejemplo XCBR) como clases concretas. este es el programita:

Citar
class LN
{
public:
char LNName[10];
char LNRef[30];
char Data[100];
struct {float ctVal,stVal,q,t;} Pos;
LN(){};
~LN(){};
};

class XCBR : public LN
{
public:
int b;
XCBR(){};
~XCBR(){};
};

class LD
{
public:
char LDName[30];
char LDRef[30];
char LogicalNode[100];
LN *LN;

LD()
{
LN = new XCBR;
}
;
~LD(){};
};

void main()
{
LD LD;
LD.LN->b;
}


O sea que el objeto LN del main es de la clase abstracta LN y clase concreta XCBR (no se si se dice de esta manera). El tema es que el atributo b esta declarado en la clase XCBR y desde el main me dice que la clase LN no tiene un atributo b, lo cual es correcto, pero en realidad no hace lo que yo quiero hacer con clases abstractas que es que el objeto contenga los atributos de la clase LN y XCBR.


Pido ayuda

gracias

5
Visual C++ / Utilizar un puntero a char en un constructor de una clase
« en: Lunes 6 de Abril de 2009, 19:36 »
El siguiente codigo me da error al ejecutar el .exe, cual puede ser el problema??::

#include "string.h"
#include "stdio.h"
#include "iostream.h"

class Server
{
public:   
char *p;
Server();
~Server();
};

Server::Server(){strcpy(p,"hola");}
Server::~Server(){}




void main()
{
Server server;
}


Desde ya muchas gracias

6
Visual C++ / Utilizar string como nombre de objeto
« en: Jueves 26 de Marzo de 2009, 19:34 »
Hola,

tengo un objeto anidado que para escribir su valor en pantalla escribo:

cout << LD1.XCBR3.Data <<endl;

Ahora va la pregunta:

si tengo una variable con el contenido anterior como array de caracteres:

char a[30];
strcpy(a,"LD1.XCBR3.Data");


como puedo hacer para que lo primero sea ejecutado a partir de la variable a?
es eso posible? como? ( o sea yo querria hacer algo asi: cout << a <<endl;)


Desde ya muchas gracias

7
Visual C++ / Re: Array de caracteres dentro de una clase
« en: Jueves 26 de Marzo de 2009, 00:03 »
Ups! lo inicializo en el constructor, ya esta, disculpas.

8
Visual C++ / Array de caracteres dentro de una clase
« en: Miércoles 25 de Marzo de 2009, 21:46 »
Hola, quiero crear un array de caracteres como atributo de una clase, no puedo hacerlo funcionar, este es el codigo:

#include <stdio.h>
#include <string.h>
#include "iostream.h"


class Server
{

public:
char pepe[5]="h";
Server (  ){};
~Server(  ){};
};





Si alguien me puede dar una solucion se lo agradezco

saludos

9
Visual C++ / Utilizando el puerto ethernet
« en: Viernes 20 de Marzo de 2009, 16:28 »
Hola amigos, he estado utilizando el api socket y funciona muy bien, pero tengo que hacer una aplicacion que encapsula sus datos sirectamente sobre ethernet (capa 2 del modelo OSI), o sea direccionando solo con direcciones MAC, sin utilizar ip y tcp (capas 3 y 4 del modelo OSI). Como hago en c++ para encapsular los datos directamente sobre ethernet?


Desde ya muchas gracias

10
C/C++ / Re: Clases que llaman a otras clases
« en: Lunes 16 de Marzo de 2009, 15:22 »
MM, en visual ningun problema, pero cuando intente compilar con gcc me tiro un monton de errores, lo voy a hacer en forma estatica definiendo un vector en vez de un puntero y dandole una dimension fija, de todos modos gracias

11
C/C++ / Re: Clases que llaman a otras clases
« en: Viernes 13 de Marzo de 2009, 17:14 »
No se como poner el codigo como lo pones vos, bueno lo pongo en negrita.

Esto es lo que me recomendaste:

void Server::cambioa(int b)
{
    int c;
    c=b;    
    pLD[c] = new LD;
    pLD[c].a=c;
}



pero asi, previamente tengo que declarar a pLD con dimensiones fijas, no puedo agreegarle elementos de forma dinamica. A lo mejor quiero hacer algo que no es posible, de ultima declaro *pLD de dimension 100 ponele y no uso todos los elementos, que otra forma podria utilizar?

gracias

12
C/C++ / Re: Clases que llaman a otras clases
« en: Jueves 12 de Marzo de 2009, 19:52 »
No me queda del todo claro, en el codigo que adjunto, declaro a mi puntero LD *pLD;, en el constructor de server lo inicializo asi: pLD= new LD[];, despues lo uso como si fuera un vector, le agrego todos los objetos LD que quiero desde algun metodo de server, pero como sabe el compilador que dimension darle? Por ejemplo, server podria tener un metodo para crear LDs de forma un cliente externo podria invocar este metodo y el programa intentaria usar mas elementos de este vector, podria sobreescribir algo de manera incorrecta?

#include "iostream.h"

class LD{
public:
int a;

LD(){cout << "LD creado" << endl;};
~LD(){cout << "LD destruido." << endl;};

};


class Server {
public:
LD *pLD;
Server();
~Server();
void cambioa(int b);
};

Server::Server()
{
cout << "Server creado" << endl;
pLD= new LD[];
}
Server::~Server() {cout << "Server destruido." << endl;}
void Server::cambioa(int b)
{
int c;
c=b;
pLD[c].a=c;
}

int main () {
Server server;
server.cambioa(0);
server.cambioa(1);
cout << server.pLD[0].a << endl;
cout << server.pLD[1].a << endl;

return 1;
}

13
C/C++ / Re: Clases que llaman a otras clases
« en: Jueves 12 de Marzo de 2009, 14:51 »
Fijate ese codigo que hice, que si bien creo un objeto LD luego en el main lo uso como si fuera un vector de objetos LD, quizas esta mal hacerlo asi, de todas formas al declararlo LD[] es un vector de cuantos elementos??

14
C/C++ / Re: Clases que llaman a otras clases
« en: Jueves 12 de Marzo de 2009, 13:26 »
Solucionado!

Cree el puntero en la clase server, asi el puntero se crea una vez y no se toca mas, sino cada vez que llamaba al metodo el puntero cambiaba, lo que si mosquito en la declaracion tengo dos opciones que funcionan:
pLD= new LD; y pLD= new LD[];
Es lo mismo o me conviene utilizar alguna de las 2??

gracias.

Asi quedo el codigo:

#include "iostream.h"

class LD{
public:
int a;

LD(){cout << "LD creado" << endl;};
~LD(){cout << "LD destruido." << endl;};

};


class Server {
public:
LD *pLD;
Server();
~Server();
void cambioa(int b);
};

Server::Server()
{
cout << "Server creado" << endl;
pLD= new LD;
}
Server::~Server() {cout << "Server destruido." << endl;}
void Server::cambioa(int b)
{
int c;
c=b;
pLD[c].a=c;
}
 
  int main () {
  Server server;
  server.cambioa(0);
  server.cambioa(1);
  cout << server.pLD[0].a << endl;
  cout << server.pLD[1].a << endl;
  return 1;
  }

15
C/C++ / Re: Clases que llaman a otras clases
« en: Jueves 12 de Marzo de 2009, 13:05 »
Pense que lo habia hecho como me dijiste pero en realidad no, esto hice:

#include "iostream.h"

class LD{
public:
int a;

LD(){cout << "LD creado" << endl;};
~LD(){cout << "LD destruido." << endl;};

};


class Server {
public:
LD *pLD;
Server();
~Server();
void cambioa(int b);
};

Server::Server() {cout << "Server creado" << endl;}
Server::~Server() {cout << "Server destruido." << endl;}
void Server::cambioa(int b)
{
int c;
c=b;
pLD= new LD[c];
pLD[c-1].a=4;
}
 
  int main () {
  Server server;
  server.cambioa(3);
  cout << server.pLD[2].a << endl;
  return 1;
  }



Pero de esta forma el parametro b me fija la cantidad de LD, para hacerlo mas dinamico seria como vos decis pero no me sale. En ese caso, como haria para saber cual es el ultimo LD creado? o sea a partir del puntero como lo referencio??

gracias

16
C/C++ / Re: Clases que llaman a otras clases
« en: Miércoles 11 de Marzo de 2009, 14:47 »
m0squit0 ya me anduvo como me dijiste, la verdad de mucha ayuda, gracias.

17
C/C++ / Clases que llaman a otras clases
« en: Martes 10 de Marzo de 2009, 15:06 »
la quisiera saber si esto es posible y en ese caso como se haria:

Tengo dos clases, una server y la otra LD. Cada instancia de la clase server puede contener una o mas instancias de LD, la cantidad no es fija. Mi pregunta es como hacer esto? Podria luego desde mi programa principal hacer: instancia_de_server.instancia_de_LD.algun_atributo _de_LD ?? Sería como que la instancia LD dentro del server es luego utilizada en el main como si fuera un atributo mas del server.


Si alguien me puede dar una mano se lo agradezco

Páginas: [1]