Programación General > C/C++
gramatica de clases en C++
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
[*] Página Anterior
Ir a la versión completa