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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Alguien me ayuda con esta duda? Funciones & Punteros.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Alguien me ayuda con esta duda? Funciones & Punteros.  (Leído 6,448 veces)
XorNet

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Alguien me ayuda con esta duda? Funciones & Punteros.
« Respuesta #10 en: 5 Octubre 2013, 00:04 am »

xd Creo que no me supe explicar, cuando tenemos:
Código
  1. ZGetGame()->ZMyCharacter();
  2.  

Porqué ZGetGame() Tiene paréntesis? Qué es lo que los hace tener? Sí es un objeto puntero de una clase bastaría con: ZGetGame->ZMyCharacter(); Y así el objeto llama a la función ZMyCharacter(), Pero porqué ZGetGame tiene paréntesis?


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Alguien me ayuda con esta duda? Funciones & Punteros.
« Respuesta #11 en: 5 Octubre 2013, 00:27 am »

Eso es que ZGetGame() es una función que retorna un objeto. ZMyCharacter() es una función del objeto retornado.


En línea

XorNet

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Alguien me ayuda con esta duda? Funciones & Punteros.
« Respuesta #12 en: 5 Octubre 2013, 01:04 am »

Eso es que ZGetGame() es una función que retorna un objeto. ZMyCharacter() es una función del objeto retornado.

Heheheh al fin lo entendí. xP O sea que el código correcto al que coloqué anteriormente es este:
Código
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6. class Prueba {
  7. public:
  8.    void saludo() { cout << "Saludo desde la funcion!!\n"; }
  9.    Prueba() { }
  10. };
  11.  
  12. Prueba* pPrueba() {
  13.    Prueba ejemplo1;
  14.    return &ejemplo1;
  15. }
  16.  
  17. int main() {
  18.  
  19.    // ...
  20.  
  21.    pPrueba()->saludo();
  22.  
  23.    // ...
  24.    Prueba* prueba2 = pPrueba();
  25.    prueba2->saludo();
  26.  
  27.    system("pause>nul");
  28.  
  29.    return 0;
  30. }
  31.  

Al fin lo entiendo sé que no es la gran cosa pero me servirá. (:
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Alguien me ayuda con esta duda? Funciones & Punteros.
« Respuesta #13 en: 5 Octubre 2013, 02:22 am »

En esta función:
Código
  1. Prueba* pPrueba()
  2. {
  3.   Prueba ejemplo1;
  4.   return &ejemplo1;
  5. }
Estas retornando la dirección de una variable local, no es valido ya que todas las variables locales se destruyen al finalizar la función.

Para que compile sin problemas puedes calificar la variable "ejemplo1" con static, de esa forma la variable existe durante toda la duración del programa:
Código
  1. Prueba* pPrueba()
  2. {
  3.   static Prueba ejemplo1;
  4.   return &ejemplo1;
  5. }

Con todo el ejemplo solo tiene caso (sentido) para practicar el uso de funciones y sus valores de retorno.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con esta duda/ ¿Reto?
Desarrollo Web
noobAtKeyboard 1 2,029 Último mensaje 24 Mayo 2014, 06:42 am
por gastontoth
(Duda) Alguien me ayuda?
Java
Odask 1 1,583 Último mensaje 23 Agosto 2014, 17:11 pm
por l3ad Programmer
Ayuda en funciones,acciones y duda
Programación C/C++
SojatDotar 0 1,395 Último mensaje 11 Octubre 2015, 00:30 am
por SojatDotar
DUDA Punteros a funciones
Programación C/C++
mechanicalgirl 1 1,620 Último mensaje 5 Enero 2018, 03:22 am
por CalgaryCorpus
Alguien me ayuda aplicar esta Formula « 1 2 »
Foro Libre
El_Andaluz 15 5,762 Último mensaje 30 Abril 2018, 02:15 am
por El_Andaluz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines