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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Operador de seleccion -> en variable no puntero..
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Operador de seleccion -> en variable no puntero..  (Leído 2,467 veces)
digimikeh

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Operador de seleccion -> en variable no puntero..
« en: 13 Mayo 2019, 04:33 am »

Hola

Me he topado con algo que no había visto antes.. es lo siguiente;

Código
  1. auto director = Director::getInstance();
  2. auto glview = director->getOpenGLView();
  3.  

director no es puntero, porque entonces utiliza el operador -> ?

Gracias
Saludos


En línea

Dungeons & dragons;
dragons.Attack();
digimikeh

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Operador de seleccion -> en variable no puntero..
« Respuesta #1 en: 13 Mayo 2019, 04:50 am »

Corrijanne si estoy mal por favor, me parece que la palabra auto lo que hace es autodetectar el tipo devuelto, en este caso Director::getIntance() esta devolviendo un puntero de algún tipo... Y auto se transforma en ese puntero devuelto..

Sera asi?


En línea

Dungeons & dragons;
dragons.Attack();
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Operador de seleccion -> en variable no puntero..
« Respuesta #2 en: 13 Mayo 2019, 04:57 am »

Por qué dices que no es un puntero? Normalmente la función miembro <getInstance()> suele ser una función de las clases singleton (clases que solo pueden tener una instancia) y estas clases suelen tener un puntero a un objeto de esa clase.
Código
  1. class SingletonExample{
  2.    private:
  3.        static SingletonExample* instance = NULL;
  4.        SingletonExample(){}
  5.    public:
  6.        static SingletonExample getInstance(){
  7.            if (instance == NULL)
  8.                instance = new SingletonExample;
  9.            return *instance;
  10.        }
  11. }
Te dejo el enlace de donde he sacado este fragmento de código: https://stackoverflow.com/questions/12707542/what-exactly-does-getinstance-do-in-a-singleton

Y como bien acabas de decir. La palabra reservada <auto> crea la variable del mismo tipo que le estás asignando.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
digimikeh

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Operador de seleccion -> en variable no puntero..
« Respuesta #3 en: 13 Mayo 2019, 05:27 am »

Decía que no era puntero porque no lleva el asterisco

Tiene algo que ver la palabra auto?
En línea

Dungeons & dragons;
dragons.Attack();
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Operador de seleccion -> en variable no puntero..
« Respuesta #4 en: 13 Mayo 2019, 06:37 am »

Al usar la palabra <auto> todo depende del valor de retorno de <getInstance()>. Si esa función devuelve un puntero o una referencia entonces <auto> se comportará como si estuviesemos declarando un puntero de ese tipo.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
digimikeh

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Operador de seleccion -> en variable no puntero..
« Respuesta #5 en: 13 Mayo 2019, 15:37 pm »

Si, justamente así lo entendí luego.. Y lo acabas de confirmar.

Y gracias por el dato del patrón singleton, debo echarle una mirada..
Saludos
En línea

Dungeons & dragons;
dragons.Attack();
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: Operador de seleccion -> en variable no puntero..
« Respuesta #6 en: 13 Mayo 2019, 17:03 pm »

El operador flecha es lo mismo que el operador desreferenciador y el operador punto.
director->getOpenGLView()
(*director).getOpenGLView()

Se utiliza la flecha para escribir menos y hacer el codigo más fácil de leer. Pero son lo mismo.
Recuerda tambien que los operadores se pueden sobrecargar para que hagan cosas distintas.
Como ya te han dicho, auto detecta el tipo de dato.
« Última modificación: 13 Mayo 2019, 17:06 pm por string Manolo » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

digimikeh

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Operador de seleccion -> en variable no puntero..
« Respuesta #7 en: 13 Mayo 2019, 21:09 pm »

Si, lo tenia claro, mi duda estaba con el tipo auto..

Gracias.. saludos!
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
Como reiniciar el puntero de una variable
PHP
:ohk<any> 3 4,368 Último mensaje 9 Abril 2011, 01:28 am
por :ohk<any>
Operador en variable
PHP
sexto 2 1,687 Último mensaje 10 Enero 2012, 15:39 pm
por sexto
Operador de selección de miembro [?] [C++]
Programación C/C++
milx86 4 2,384 Último mensaje 17 Marzo 2014, 22:37 pm
por milx86
Cambiar el valor de una variable en un puntero
Programación C/C++
boy-ka 5 8,909 Último mensaje 7 Abril 2015, 10:25 am
por eferion
funcion que devuelve un puntero de una variable static
Programación C/C++
fafafa01 8 4,037 Último mensaje 24 Enero 2017, 23:28 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines