![]() |
|
|
#1 |
|
Recien llegado
![]() Fecha de Ingreso: agosto-2010
Amigos 0
Mensajes: 1
Gracias: 0
Agradecido 0 veces en 0 mensajes.
|
Hola a todos, hola Fashion. Recien hoy me registre en este foro, pero soy un cliente antiguo. Hace mas de 5 años fui un cliente asiduo del foro.
Ahora tengo una duda, se trata de la programacion orientada a objetos en C++. Es acerca de un namespace que estoy haciendo, q me permita manejar la consola de una forma muy sencilla, que basicamente emula el manejo de consola de C# (al menos eso creo, no conozco mucho de C#). Masomenos quiero q funcione de esta manera: Código:
#include <iostream>
#include "console" // Esta es la libreria que estoy creando.
using namespace std;
using namespace console; // Este es el namespace que voy a usar.
int main()
{
Console.Title = "title";
Console.ForegroundColor = ConsoleColor.Green;
Console.WindowLeft = Console.WindowTop = 0;
Console.Writeline("ASD");
Console.Readkey;
....
}
Código:
namespace console
{
class ConsoleClass
{
public:
char * Title;
int ForegroundColor;
... // Otras propiedades
ConsoleClass(); // El constructor
... // Otros metodos
}
extern ConsoleClass Console;
}
Quiero que Console.ForegroundColor sea a la vez un metodo y una propiedad. Es decir, quiero que al escribir Código:
Console.ForegroundColor = ConsoleColor.Green;
1. Se pase como parametro "ConsoleColor.Green" ( que equivale al entero 2). 2. Se ejecute un metodo que llame a la funcion correspondiente para que el color de texto cambie. Algo asi: Código:
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo ( hOut, &csbi ); // hOut esta definido
como GetStdHandle(STD_OUTPUT_HANDLE)
SetConsoleTextAttribute ( hOut, (csbi.wAttributes & 0xf0) | newcolor );
// newcolor valdria "2" en este caso particular
Código:
cout << Console.ForegroundColor; //
y que ademas yo pueda hacer lo siguiente: Código:
Console.ForegroundColor = Console.BackgroundColor = ConsoleColor.Blue
Quiero saber como debo implementar Console.ForegroundColor, si con una clase, una funcion virtual, una funcion normal + macros, no se. (lo cierto es que recien estoy metiendome en esto de la POO, antes solo programaba en C) Muchas gracias de antemano. |
|
|
|
|
|
#2 | |||
|
Gran Colaborador
![]() Fecha de Ingreso: junio-2007
Amigos 3
Mensajes: 1.922
Gracias: 48
Agradecido 760 veces en 307 mensajes.
|
Cita:
Con respecto a las funciones, tal ves lo siguiente te sirva:
__________________
|
|||
|
|
|
|
|
#3 | |
|
Moderador
![]() Fecha de Ingreso: marzo-2007
Amigos 5
Mensajes: 1.457
Gracias: 18
Agradecido 275 veces en 244 mensajes.
|
No incies una discusión
Es recomendable usar funciones inline en lugar de macros". Hay una limitante en cuanto a lo que pides, y es que C++ no tiene soporte para Propiedades, así que hay cosas que no vas a poder hacer. Lo que podés hacer (y lo que todo programador C++ haría calculo yo), es utilizar los métodos set y get (setForegroundColor y getForegroundColor por ejemplo). Otra, para mantener lo que quieres, es hacer una clase ForegroundColor que tenga sobrecargado el operador =, a su vez, el atributo de la clase deberia ser público, así podrías tener algo como lo que pides (igual, es 0 recomendable hacer eso, queda algo muy feo y no debes hacerlo).
__________________
Hay pocas frases que me identifican tanto Cita:
Última edición por Fashion; 31-ago-2010 a las 20:41 Razón: NORMAS DEL FORO - ART . 9 |
|
|
|
|
![]() |
| Herramientas | |
| Desplegado | |
|
|

Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Galeria De Regalos a zolo y Sus Pequeñas Historias 67 F, 37 Diseñadores (24-03-13) | zolo | Galerías | 22 | 24-mar-2013 12:37 |
| duda sobre llaves de dish.. | galadrio | TV HACK | 2 | 11-ene-2012 03:04 |
| Hacking Empezando desde 0 | mancuertex | HacK GeneraL | 89 | 26-oct-2010 13:01 |
| Duda sobre precio de software | bunkerfire | Visual Basic y Net | 10 | 08-ago-2010 20:46 |
| Duda Sobre Ataque SYN .. Funciona esto ? | Fant4sma17 | Seguridad | 3 | 11-oct-2009 09:14 |