Programación General > C/C++

 gramatica de clases en C++

<< < (2/2)

Epa:
El problema ahi, es que cout no es una funcion, es un objeto de tipo class ostream.

picyo:
claro, ya entiendo !
se ve raro que un objeto sea usado como funcion ( al menos a mi me pareccia raro) por eso no asociaba. Bueno, voy avanzando :)

picyo:
Bueno , he profundizado un poco mas. por ejemplo :

--- Código: C++ --- ConsoleKeyInfo KeyPress;KeyPress=Console::ReadKey(true);    // ESTO ES A while(keyPress.key != ConsoleKey::Escape){    // ESTO ES B y ESTO ES C // (...) }return 0;   
ESTO ES A

--- Código: C++ --- public:static ConsoleKeyInfo ReadKey (    bool intercept)   
ESTO ES B

--- Código: C++ --- public enum class ConsoleKey------------------------------------------------------------------------------------ejemplos:A   Tecla A. Add Tecla Agregar. Applications    Tecla Aplicación (Microsoft Natural Keyboard). (...) ESTO ES C

--- Código: C++ --- public:ConsoleKeyInfo (    wchar_t keyChar,     ConsoleKey key,     bool shift,     bool alt,     bool control) 
En ESTO ES A, hemos creado un objeto de la clase ConsolekeyInfo, y lo inicializamos mediante el método ReadKey, aunque este método no "lo tenemos" desde un objeto creado por nosotros, sinó que lo llamamos desde la "clase madre" .

Con eso he comprobado que no se igualan dos tipos distintos ( de ser contrario, hubiera habido que tener un conversor). Los dos tipos son tipo ConsoleKeyInfo. A la hora de llamar el método ReadKey(), se hace sin haber creado un objeto ( se usaría el "."). Entonces deberiamos hacer algo asi como " ConsoleKeyInfo.ReadKey", pero no es exactamente asi.

EN ESTO ES C, se ve que variables integran la clase ConsoleKeyInfo, una de ellas es key, tipo ConsoleKey ( ConsoleKey a su vez es un tipo enumerado, de todos los caracteres del teclado estándar).

Bien entonces, por que no se llama como he dicho antes (" ConsoleKeyInfo.ReadKey") ? Pues a mi modo de entender, cuando se quiere usar un método o objeto de una clase sin haber creado el objeto ( como en este caso KeyPress), se llama a la clase directamente, o se dice la procedencia, mejor dicho, pero no de la clase, sinó de donde esta esa clase. En este caso, nuestra clase ConsoleKeyInfo está dentro de lo que ( a mi, correjidme si no es correcto) una "super clase" o simplemente una librería que integra diferentes objetos, o métodos...

Entonces, con la funcion Readkey(true), activamos la deteccion de caracteres del teclado estándar, y se compara ese ( evento?) con la tecla Escape, que es un tipo ConsoleKey, dentro a su vez ( como variable integrada)del constructor de CosnoleKeyInfo.

La raíz de todo: podriamos decir que ralmente Console es una super clase donde dentro estan, por ejemplo, el objeto readKey?

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa