Autor
|
Tema: [C++] Dudas en general (Leído 7,421 veces)
|
megalomania
Desconectado
Mensajes: 9
|
Gracias, a ver tengo una duda con la herencia protected: Si tengo: 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!!
|
|
|
En línea
|
|
|
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
No sé si se me ha entendido bien en el primer punto. Esto está mal: class ClaseA { public int a; private int b; protected int c; }
Cuando declaras una clase debes tener en cuenta de que: 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
|
|
« Última modificación: 26 Agosto 2010, 01:05 am por Horricreu »
|
En línea
|
|
|
|
megalomania
Desconectado
Mensajes: 9
|
No sé si se me ha entendido bien en el primer punto. Esto está mal: class ClaseA { public int a; private int b; protected int c; }
Cuando declaras una clase debes tener en cuenta de que: 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 Ok lo entiendo, a partir de ahora sere estricto con la sintaxis. Ahora sería alguien tan amable de responder a mi pregunta
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
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.
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. Básicamente lo que ha hecho el es spam, para eso se podria ahorrar su respuesta. 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. 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. Depende lo que quieras hacer, pero si derivas en protected, los miembros public y protected de la clase base, siguen siendo public y protected. son protected en la derivada. Edit: Pequeña corrección. Saludos
|
|
« Última modificación: 27 Junio 2010, 18:15 pm por Littlehorse »
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
megalomania
Desconectado
Mensajes: 9
|
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! 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. 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
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
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.
No creo que sean tan distintas, en mi caso me gusta explicar lo mejor posible siempre y cuando vea esfuerzo en la otra parte y se tengan los detalles suficientes sobre lo que hay que explicar. Probablemente si sean distintas las opiniones sobre como hacer una pregunta. Por otro lado déjame decirte - como recomendación para futuros hilos- que si hubieses elaborado en tu post inicial de la misma forma que lo intentaste en los post siguientes, nadie te hubiese mandado a Google ya que la duda especifica se hubiese comprendido de entrada. Gracias! De nada , para eso estamos. Saludos
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
megalomania
Desconectado
Mensajes: 9
|
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
|
|
« Última modificación: 27 Junio 2010, 20:07 pm por megalomania »
|
En línea
|
|
|
|
|
|