elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [DUDA] Clases anidadas.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] Clases anidadas.  (Leído 2,331 veces)
Zodiak98

Desconectado Desconectado

Mensajes: 120


Ver Perfil
[DUDA] Clases anidadas.
« en: 15 Mayo 2013, 00:45 am »

Bueno tengo una duda sobre las clases anidadas, mi duda es la siguiente:

Si creo una clase dentro de otra clase, los datos miembros de la clase interna también le pertenecen a la clase externa.?

Si yo creo una función miembro constante en la clase externa, puedo modificar las variables miembro de la clase interna o no?

Otra cosa porqué si yo al declarar el nombre de una clase en la función principal, digamos que es const las demas funciones tienen que ser const porqué si no da error, a que se debe esto? Pude concluir que es para no modificar los valores que le pase o simplemente le digo al compilador que esa variable solamente trabajara con las funciones const. Un ejemplo claro seria este:

Código:
#include <iostream>
using std::cout;
using std::endl;
class Prueba
{
 private:
  int x;
 public:
  Prueba(int x = 0){escribe(x);}//constructor
  int obtiene() const{return x;}//obtiene es const
  int obtiene2(){return x;}
  void escribe(int y){x = y;}
  // void escribe(int y) const{x = y;}
};
int main()
{
  Prueba num1;
  const Prueba num2(25);
  cout << num2.obtiene();
  // cout << num2.obtiene2(); //error obtiene2 no es const.
  num1 = num2;
  cout << num1.obtiene2(); //permitido num1 no es const.
}

Para resumir la tercera pregunta que dudo haya quedado clara xD Ya como les enseñe este código(No recuerdo de donde lo saque creo que de un blog >__<) En fín, le estoy diciendo al compilador que 'num2' trabajara únicamete con las funciones miembro constantes de la clase Prueba?


« Última modificación: 15 Mayo 2013, 00:57 am por Zodiak98 » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [DUDA] Clases anidadas.
« Respuesta #1 en: 15 Mayo 2013, 01:03 am »

Citar
Si creo una clase dentro de otra clase, los datos miembros de la clase interna también le pertenecen a la clase externa.?
No. Ambas clases se comunican como si se creasen por separado.

Lo ideal esque definas las dos clases por separado y luego crees el objeto en la clase:

Código
  1. clase Interna
  2. {
  3. private:
  4.  int dato1;
  5.  int dato2;
  6.  //blablabla...
  7. };
  8.  
  9. clase Externa
  10. {
  11. private:
  12.  Interna Nueva; // Creando una clase dentro de otra
  13.  
  14.  //blablabla....
  15. };
  16.  
Citar
Si yo creo una función miembro constante en la clase externa, puedo modificar las variables miembro de la clase interna o no?
No, una función constante no puede modificar ningún dato... Y si modificas una clase estás cambiando datos.

Citar
Otra cosa porqué si yo al declarar el nombre de una clase en la función principal, digamos que es const las demas funciones tienen que ser const porqué si no da error, a que se debe esto?
Todo objeto constante se caracteriza porque no se puede modificar, la única forma que tiene el compilador de saber esto es coger las funciones que poseen el atributo const.


« Última modificación: 15 Mayo 2013, 01:05 am por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda con formularios y clases
Java
Aeros 3 3,639 Último mensaje 18 Mayo 2010, 13:12 pm
por D71
Duda con implementación de clases de UML a C++
Programación C/C++
novalida 2 2,929 Último mensaje 23 Septiembre 2011, 22:16 pm
por novalida
Duda sobre clases
Java
Zedmix 1 1,911 Último mensaje 30 Noviembre 2011, 08:58 am
por Slava_TZD
Duda con Clases
.NET (C#, VB.NET, ASP)
Senior++ 6 3,046 Último mensaje 24 Febrero 2012, 10:48 am
por Senior++
Duda con las clases [c++] « 1 2 »
Programación C/C++
Lotux5 11 5,238 Último mensaje 20 Abril 2013, 02:29 am
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines