Hola, hoy presento una duda corta. Si en una clase tienes diversas definiciones de tipos, si estás tratando con un objeto, ¿puedes declarar una variable fuera de la clase del tipo que está definido en el objeto?
Código de ejemplo:
class Foo {
public:
typedef int tipo_entero;
private:
/* Aquí las variables de la clase */
};
...
int main() {
Foo objeto;
objeto.tipo_entero variable = 54;
return 0;
}
Evidentemente no estaría preguntando esto pudiendo proponer el ejemplo. Al intentar compilar el código de arriba me salta el siguiente error:
main.cpp: In function 'int main()':
main.cpp:12:12: error: invalid use of 'Foo::tipo_entero'
objeto.tipo_entero variable = 54;
Pues eso, me gustaría saber si se puede hacer lo que he preguntado. Muchas gracias anticipadamente!
Interpreto quisiste hacer esto:
class Foo {
typedef int tipo_entero;
public:
tipo_entero valor;
private:
/* Aquí las variables de la clase */
};
int main(void) {
Foo objeto;
objeto.valor = 54;
return 0;
}
Desde el exterior, el tipo de valor es int ya que no esta declarado en ese ámbito.
Un typedef no es cosa de objeto. Es cosa de la clase.
Foo::tipo_entero k = 54;
Eso quiere decir que no se puede, supongo. Gracias :D
PD.: boctulus, no, no quise decir eso xD
Cita de: class_OpenGL en 20 Abril 2016, 19:14 PM
Eso quiere decir que no se puede, supongo. Gracias :D
PD.: boctulus, no, no quise decir eso xD
Sí, sí que se puede :/
Pero tienes que ponerlo como puse arriba. No es algo del objeto.
Ah, si, cierto. Me refería a que no se podía con un objeto en sí, gracias :D
Cita de: class_OpenGL en 20 Abril 2016, 20:09 PM
Ah, si, cierto. Me refería a que no se podía con un objeto en sí, gracias :D
El caso es, qué cambiaría que fuera de un objeto, o que querrías que cambiase?
El tema era el de las plantillas, cuando haces
template<typename T>
class Foo {
public:
typedef T tipo;
};
Pero supongo que no es tan necesario. Solo era curiosidad