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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Puntero e indice 0 de ese puntero...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Puntero e indice 0 de ese puntero...  (Leído 761 veces)
digimikeh

Desconectado Desconectado

Mensajes: 184


Ver Perfil
Puntero e indice 0 de ese puntero...
« en: 22 Febrero 2019, 02:22 am »

Hola!

Estoy intentando crear una agenda y me he topado con algo que me parecio extraño:

Código
  1. //Persona.h
  2. class Persona{
  3.  
  4.       int edad;
  5.  
  6. public:
  7.       Persona() : edad(60){};
  8.       int LeerEdad() const {
  9.              return this->edad;
  10.       }
  11.  
  12. };
  13.  

Código
  1. //main.cpp
  2. #include <iostream>
  3. #include "Persona.h"
  4.  
  5. Persona * personas;
  6.  
  7. int main (){
  8.  
  9.       personas = new Persona;
  10.  
  11.       std::cout << personas->LeerEdad() << std::endl   //Esto imprime 60
  12.  
  13.       std::cout << personas[0].LeerEdad() << std::endl //Esto imprime 223525
  14.  
  15.       return 0;
  16.  
  17. }
  18.  

Me parecía haber leido en alguna parte que personas y personas[0] apuntaban al mismo segmento de memoria..... pero están imprimiendo dos valores diferentes... No son lo mismo?  El uso que quiero darle a "personas" es el de un arreglo.


Saludos y gracias.


En línea

Dungeons & dragons;
dragons.Attack();
srWhiteSkull


Desconectado Desconectado

Mensajes: 437



Ver Perfil WWW
Re: Puntero e indice 0 de ese puntero...
« Respuesta #1 en: 22 Febrero 2019, 02:59 am »

En teoría son lo mismo.

Yo por si acaso lo he compilado usando el VS y me da en ambos casos 60 y 60.



« Última modificación: 22 Febrero 2019, 03:08 am por srWhiteSkull » En línea

digimikeh

Desconectado Desconectado

Mensajes: 184


Ver Perfil
Re: Puntero e indice 0 de ese puntero...
« Respuesta #2 en: 22 Febrero 2019, 13:31 pm »

de verdad?, que extraño, entonces tengo que ver el resto del codigo :silbar:
En línea

Dungeons & dragons;
dragons.Attack();
EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.749



Ver Perfil
Re: Puntero e indice 0 de ese puntero...
« Respuesta #3 en: 23 Febrero 2019, 02:30 am »

Saludos,

- Recién voy tocando Clases en C++, un poco lioso porque hay varias maneras de estructurarlas ...

Código
  1. //Persona.h
  2. class Persona {
  3.  
  4.  int edad;
  5.  
  6.  public:
  7.  Persona() : edad(60) {};
  8.  int LeerEdad() const {
  9.    return this->edad;
  10.  }
  11.  
  12. };

Código
  1. //main.cpp
  2. #include <iostream>
  3. #include "Persona.h"
  4.  
  5. Persona * personas;
  6.  
  7. int main () {
  8.  
  9.  personas = new Persona;
  10.  
  11.  std::cout << personas->LeerEdad() << std::endl;   //Esto imprime 60
  12.  std::cout << personas[0].LeerEdad() << std::endl; //Esto imprime 60
  13.  //std::cout << personas.LeerEdad() << std::endl; //Esto da error
  14.  std::cout << (*personas).LeerEdad() << std::endl; //Esto imprime 60
  15.  
  16.  
  17.  /* Metodo clasico */
  18.  Persona personita;
  19.  
  20.  //std::cout << personita->LeerEdad() << std::endl;   //Esto da error
  21.  //std::cout << personita[0].LeerEdad() << std::endl; //Esto da error
  22.  std::cout << personita.LeerEdad() << std::endl; //Esto imprime 60
  23.  //std::cout << (*personita).LeerEdad() << std::endl; //Esto da error
  24.  
  25.  return 0;
  26. }

Código:
C:\Users\EdSon\Desktop>g++ main.cpp -o main.exe && main.exe
60
60
60
60

C:\Users\EdSon\Desktop>

Referencias:
https://openlibra.com/es/book/fundamentos-de-programacion-con-el-lenguaje-de-programacion-c-ed-2017 (Pág. 131 Tipos abstractos de datos, Clases)
https://openlibra.com/es/book/programacion-orientada-a-objetos-2 (Pág. 17 Clases y Objetos)
https://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf (Pág 195 Accessing Class members)
En línea

digimikeh

Desconectado Desconectado

Mensajes: 184


Ver Perfil
Re: Puntero e indice 0 de ese puntero...
« Respuesta #4 en: 23 Febrero 2019, 13:11 pm »

Efectivamente, me di cuenta que funciona, debe haber algo más en el código que impide que funcione bien.. >:D
En línea

Dungeons & dragons;
dragons.Attack();
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Que es un puntero
Programación C/C++
fernando.fetis 4 1,632 Último mensaje 16 Julio 2010, 05:30 am
por fernando.fetis
Puntero+indice
Programación C/C++
Binary_Death 3 1,636 Último mensaje 18 Agosto 2010, 12:52 pm
por do-while
puntero c++
Programación C/C++
manutmac 2 973 Último mensaje 21 Octubre 2012, 16:15 pm
por manutmac
¿El Puntero this?
Programación C/C++
spaghettis 1 744 Último mensaje 16 Febrero 2014, 18:03 pm
por x64core
Operador de seleccion -> en variable no puntero..
Programación C/C++
digimikeh 7 1,033 Último mensaje 13 Mayo 2019, 21:09 pm
por digimikeh
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines