Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 509

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 512

Warning: Illegal string offset 'membergroupids' in [path]/includes/functions.php on line 441

Warning: Illegal string offset 'membergroupids' in [path]/includes/functions.php on line 443

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 452

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 509

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 512

Warning: Illegal string offset 'membergroupids' in [path]/includes/functions.php on line 441

Warning: Illegal string offset 'membergroupids' in [path]/includes/functions.php on line 443

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 452

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 509

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 509

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 509

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'usergroupid' in [path]/includes/functions.php on line 518

Warning: Illegal string offset 'userid' in [path]/includes/functions.php on line 518
Duda sobre como implementar una clase en C++
Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Carbide C/C#/C++


Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 30-ago-2010, 03:10   #1
Recien llegado
 
Fecha de Ingreso: agosto-2010
Amigos 0
Mensajes: 1
Gracias: 0
Agradecido 0 veces en 0 mensajes.
Exclamation Duda sobre como implementar una clase en C++

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;
    ....
}
  
Y por ahi va. Y la implementacion de "console" es masomenos de esta manera:

Código:
namespace console
{
    class ConsoleClass
    {
        public:
        char * Title;
        int ForegroundColor;
        ... // Otras propiedades
 
        ConsoleClass(); // El constructor
        ... // Otros metodos
    }
    extern ConsoleClass Console;
}
  
Lo que yo quiero hacer es lo siguiente:
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;
  
sucedan 3 cosas:

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
  
3. Console.ForegroundColor valga ahora 2, o sea, que al hacer:
Código:
    cout <<  Console.ForegroundColor; //
  
devuelva "2"

y que ademas yo pueda hacer lo siguiente:

Código:
    Console.ForegroundColor = Console.BackgroundColor = ConsoleColor.Blue
  
por ejemplo.

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.
helpse está desconectado   Responder Citando
Antiguo 30-ago-2010, 12:29   #2
Moderador
 
Avatar de Fashion
 
Fecha de Ingreso: junio-2007
Amigos 4
Mensajes: 2.056
Gracias: 55
Agradecido 847 veces en 328 mensajes.
Predeterminado

Cita:
Iniciado por helpse Ver Mensaje
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.
Es recomendable que utilices clases y no macros.

Con respecto a las funciones, tal ves lo siguiente te sirva:

[Solo usuarios registrados pueden ver los links. REGISTRARSE]

__________________

[Solo usuarios registrados pueden ver los links. REGISTRARSE]

Fashion está desconectado   Responder Citando
Antiguo 31-ago-2010, 15:43   #3
Moderador
 
Avatar de ajr784
 
Fecha de Ingreso: marzo-2007
Amigos 5
Mensajes: 1.763
Gracias: 32
Agradecido 371 veces en 321 mensajes.
Predeterminado

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).
__________________
Cita:
Yo soy del mundo, mundo de los locos. Está de moda y están todos como locos
-- Veneno - Tan Bionica --

Última edición por Fashion; 31-ago-2010 a las 21:41 Razón: NORMAS DEL FORO - ART . 9
ajr784 está desconectado   Responder Citando
Respuesta

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



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 13:37
duda sobre llaves de dish.. galadrio HacK GeneraL 2 11-ene-2012 04:04
Hacking Empezando desde 0 mancuertex HacK GeneraL 89 26-oct-2010 14:01
Duda sobre precio de software bunkerfire Visual Basic y Net 10 08-ago-2010 21:46
Duda Sobre Ataque SYN .. Funciona esto ? Fant4sma17 Seguridad 3 11-oct-2009 10:14



Portal Hacker
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0