Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - megalomania

#1
Programación C/C++ / Re: [C++] Dudas
27 Junio 2010, 19:09 PM
Código (cpp) [Seleccionar]
class ClaseA
{
 public:
 int a;
 private:
 int b;
 protected:
 int c;
};
class HPublica : public ClaseA
{
       int getNum(){ return a*c;};
};

class HPrivada : private ClaseA
{
       int getNum(){ return a*c;};
};

class HProtegida : protected ClaseA
{
       int getNum(){ return a*c;};
};
#pragma argsused
int main(int argc, char* argv[])
{
       HPublica pub;
       pub.a;

       HPrivada priv;
       HProtegida proc;

       ClaseA claseA1 = pub;
       ClaseA claseA2 = priv;//Error!!!
       ClaseA claseA3 = proc;//Error!!!

       return 0;
}


Creo que sigo sin entender los tipos de herencia :S
Quisiera saber xq me da error al compilar(cannot convert HPrivada to ClaseA y lo mismo con HProtegida) las 2 sentencias que pongo como error!!, es acaso porque al ser herencias del tipo privado o protegida sus instancias no conservan nada de la clase base?

salu2 y gracias
#2
Programación C/C++ / Re: Dudas en c++
27 Junio 2010, 17:00 PM
Citar
Porque posiblemente dicho miembro necesita la posibilidad de ser consultado por varias instancias del objeto. Obviamente que si tenes una sola instancia no tiene sentido, pero cuando desarrollas una clase no lo haces solamente pensando en cuantas instancias del objeto van a existir. Por eso mismo te digo que depende de la estructura general del programa.
Ok, entendido, era solo eso, confirmar lo que yo habia entendido, gracias!

Citar
Lo que digas, a mi no me parece. Si planteas tu duda en forma de "Para que sirve tal x" sin elaborar mas, otra cosa no podes esperar. En todo caso si es spam o no, queda a criterio de los moderadores, por mi parte en este caso no lo fue y espero que aprendas que para conseguir esfuerzo en una respuesta, se debe emplear el mismo en la forma de hacer la pregunta.
Veo que ambos tenemos opiniones distintas, acerca de como responder, si bien es cierto cada uno es libre de escribir lo que desee, no deberíamos darle mas vueltas a esto, por mi parte doy el tema por zanjado.

Citar
Depende lo que quieras hacer, pero si derivas en protected, los miembros public y protected de la clase base, siguen siendo public y protected.
Saludos

Gracias!, como ya decia antes, la teoría ya la e leido y creo que la comprendo en su mayoria, pero aveces me kedan estas dudas existenciales, y como a mi me gusta saber lo que estoy haciendo y no escribir a lo tonto, por eso el de mi pregunta, ya que por una razon u otra hay cosas q parecen obvias pero le doy mas vueltas de las necesarios y me lio.

Una vez mas gracias ;)
#3
Programación C/C++ / Re: Dudas en c++
27 Junio 2010, 15:33 PM
Cita de: Horricreu en 27 Junio 2010, 15:28 PM
No sé si se me ha entendido bien en el primer punto. Esto está mal:

Código (cpp) [Seleccionar]
class ClaseA
{
public int a;
private int b;
protected int c;
}


Cuando declaras una clase debes tener en cuenta de que:

Código (cpp) [Seleccionar]
class ClaseA
{
public:
          int a;

  private:
          int b;

protected:
          int c;
};


Siempre que se hace public/private/protected, debe ir ":". Y las clases se terminan con ";".

Saludos :P

Ok lo entiendo, a partir de ahora sere estricto con la sintaxis.
Ahora sería alguien tan amable de responder a mi pregunta  :-[ :-[ :-[ :-[ :-[ :-[
#4
Programación C/C++ / Re: Dudas en c++
27 Junio 2010, 15:21 PM
Gracias, a ver tengo una duda con la herencia protected:

Si tengo:
Código (cpp) [Seleccionar]

class ClaseA
{
 public int a;
 private int b;
 protected int c;
}

class ClaseH : public ClaseA // ClaseH tendra implicito
 public int a;
 private int b;
 protected int c;

class ClaseH : private ClaseA // ClaseH tendra implicito
 private int a;
 private int b;
 private int c;

class ClaseH : protected ClaseA // ClaseH tendra implicito
 private int a;
 private int b;
 protected o private int c;?¿



Solo quiero saber si a esta conclusión que e llegado después de leerme los links q me habéis pasado es correcto :/
salu2 y gracias!!
#5
Citar
CitarEntonces, en la ejecucion del programa habran como mucho 1 instancia del padre y 1 instancia del hijo, y pregunto otra vez, tiene algun sentido la variable static b?

Si pones el código lo podemos ver en detalle, pero a simple vista, tiene sentido.
El problema de poner el codigo es que son muchas lineas para copiaros todo, ademas mi duda es principalmente teórica mas no técnica.
Entonces porque tendría sentido?, yo entiendo que si tengo solo una instancia del padre y otra del hijo, siendo el hijo el unico que tiene atributos static, xq tendria sentido? es decir un atributo static es una variable comun a todas las instancias de la clase, cosa q en este caso solo habrá como mucho una instancia del hijo.



Citar
Cuidado con las formas de decir las cosas. Si quieres esfuerzo en la respuesta, emplea el mismo esfuerzo en elaborar tus dudas, de lo contrario seguramente recibirás un link a Google.
Básicamente lo que ha hecho el es spam, para eso se podria ahorrar su respuesta.


Citar
Citar
Gracias, a ver tengo una duda con la herencia protected:

Primero lee este link
Saludos

Insisto, ya me he leido antes un poco de teoria, y el que me as pasado ahora, que mi ingles tampoco es para tirar cohetes, segun lo que e podido entender es cuando conviene usar los tipos de herencia, y esa no a sido mi pregunta :S.
#6
Programación C/C++ / Re: Dudas static en c++
27 Junio 2010, 14:36 PM
Cita de: Horricreu en 27 Junio 2010, 13:52 PM

A ver, tienes que dominar las classes al 100%: herencia y funciones virtuales en general (sobretodo polimorfismo).

Pero lo tienes que estudiar. Ya verás que luego verás esto que quieres hacer con claridad. Y si vuelves a tener dudas POSTEA EL CÓDIGO ;)

Saludos :P

Gracias, a ver tengo una duda con la herencia protected:

Si tengo una
class ClaseA
{
 public int a;
 private int b;
 protected int c;
}

class ClaseH : public ClaseA // ClaseH tendra implicito
 public int a;
 private int b;
 protected int c;

class ClaseH : private ClaseA // ClaseH tendra implicito
 private int a;
 private int b;
 private int c;

class ClaseH : protected ClaseA // ClaseH tendra implicito
 private int a;
 private int b;
 protected o private int c;?¿


salu2 y gracias!!
#7
Muchas gracias!, entonces tendría sentido declarar una variable static de una clase A, si luego no habran mas objetos de la clase A?.

Mi duda viene a q en una practica de la uni, yo tengo por ejemplo una clase Ejemplo con atributos cualeskiera, y luego una clase EjemploHijo que extiende de Ejemplo, EjemploHijo tiene ahora un nuevo atributo static bool b, y tbn ha añadido nuevos metodos y a redefinido algunos metodos del Padre.

Entonces, en la ejecucion del programa habran como mucho 1 instancia del padre y 1 instancia del hijo, y pregunto otra vez, tiene algun sentido la variable static b?

un saludo
#8
Cita de: Akai en 27 Junio 2010, 12:43 PM
http://tinyurl.com/24ztu4l

creo que ahí vas a encontrar mucha información

Ya salio el listillo del foro... en fin...
#9
Programación C/C++ / [C++] Dudas en general
27 Junio 2010, 12:40 PM
Alguien me puede explicar como se usan y para que sirven.

Muchas gracias de antemano.

Un saludo.