Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Empezando con C++, dudilla

Estas en el tema de Empezando con C++, dudilla en el foro de C/C++ en Foros del Web. Hola, soy nueva programando en C++. Tengo un problemilla, que supongo que es una tontería pero al no saber... Estoy haciendo clases unas heredando de ...
  #1 (permalink)  
Antiguo 05/04/2007, 08:18
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años
Puntos: 2
Exclamación Empezando con C++, dudilla

Hola, soy nueva programando en C++.
Tengo un problemilla, que supongo que es una tontería pero al no saber...
Estoy haciendo clases unas heredando de otras, y en la superclase A tengo un método imprimirPorPantalla(numero). éste método se hereda a las subclases.

en el main (¿en q clase tengo que meter el main? ), pido por teclado un numero, y dependiento si es int o float lo crearé e una clase u otra, y usando el método imprimirPorPantalla(numero) de la correspodiente clase lo saco por pantalla.

No sé como crear un numero que cojo de teclado de una clase determinada.

gracias y perdonen.
  #2 (permalink)  
Antiguo 05/04/2007, 08:28
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Empezando con C++, dudilla

main es una funcion y como tal no va en ninguna clase en particular.

¿Ya tenes el codigo para determinar si es int o float? Despues solo tenes que instanciar una variable ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 05/04/2007, 10:17
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años
Puntos: 2
Re: Empezando con C++, dudilla

Pues pediré por teclado el numero en formato cadena (pues no sé si será int o float), despues, segun lo que sea (podría ser mirando si tiene coma?) lo paso a int o float y creo una var de la clase adecuada.
Esto es lo que creo que hay q hacer, aunq aun no sé como .
  #4 (permalink)  
Antiguo 05/04/2007, 10:27
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Empezando con C++, dudilla

Cita:
Iniciado por CarlaMedina Ver Mensaje
Pues pediré por teclado el numero en formato cadena (pues no sé si será int o float), despues, segun lo que sea (podría ser mirando si tiene coma?) lo paso a int o float y creo una var de la clase adecuada.
Esto es lo que creo que hay q hacer, aunq aun no sé como .
¿Que es lo que no sabes hacer exactamente de todo eso? ¿Obtener el numero? ¿Determinar que tipo es? ¿Instanciar las variables?
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 05/04/2007, 10:38
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años
Puntos: 2
Re: Empezando con C++, dudilla

Determinar de que tipo es y por consiguiente crear una variable de la clase adecuada que lo contenga.
  #6 (permalink)  
Antiguo 05/04/2007, 10:42
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Empezando con C++, dudilla

Cita:
Iniciado por CarlaMedina Ver Mensaje
Determinar de que tipo es y por consiguiente crear una variable de la clase adecuada que lo contenga.
Podes buscar la , o el . con strchr por ejemplo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 05/04/2007, 22:15
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Empezando con C++, dudilla

Una manera menos humilde de hacerlo seria usando plantillas., asi no tienes problemas con los tipos.

Saludos
  #8 (permalink)  
Antiguo 06/04/2007, 05:48
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años
Puntos: 2
Re: Empezando con C++, dudilla

Bien. estoy en ello.
Ahora tengo una duda sobre el Visual Studio (es el programa que INTENTO utilizar para ésto)
Para hacerlo, le di a nuevo proyecto (y le doy a Win32 console empty proyect- lo leí por algún lado q era así-), me lo crea, y luego con el botón derecho sobre el nombre del proyecto le doy a nueva clase. Me crea una clase con algo de código por defecto, y escribo ahi.

Por ejemplo, si creo la clase Numeros, me crea .h y .cpp. Y la que me abre para escribir el codigo es la .h, unavez q tengo algo hecho le doy boton "Build" y luego ejecutar.

¿Está bien así? Ejecutar si ejecuta, pero el código no tiene que estar en el .cpp?? Que lío tngo!!
  #9 (permalink)  
Antiguo 06/04/2007, 06:05
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Empezando con C++, dudilla

Generalmente en los .H (que son archivos de inclusion) se define la interfaz de la clase y en el .cpp su implementacion.

Ej.h
Código:
class Ej
{
  public:
    Ej();
    ~Ej();
    void test();
};
Ej.cpp
Código:
Ej::Ej()
{
}

Ej::~Ej()
{
}

void Ej::test()
{
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #10 (permalink)  
Antiguo 07/04/2007, 13:47
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años
Puntos: 2
Re: Empezando con C++, dudilla

Y si tengo una clase base, y una derivada, en el .h lo especifico con
class b: public clas A { }

¿Y en el .cpp, los métodos de ambas clases los pongo ahí todos seguidos?

Otra pregunta: Si en la clase base defino un método, si heredo de forma pública, las subclases tienen ese método, por lo tanto, ¿en el .h tengo que especificar dentro de class B un método que heredó de class A si no lo modificó? Y si dicho método class B lo modifica, entonces es cuando en class A se declara abstract, y en class B en el .h lo especifico o ya basta con modificarlo en el .cpp?

Gracias!

Por cierto, en int main() va en el .cpp, y en el .h nada del main ¿no?
  #11 (permalink)  
Antiguo 09/04/2007, 12:42
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años
Puntos: 2
Re: Empezando con C++, dudilla

Hola!

Bueno..me alegra deciros que voy progresando con el C++.
Unas dudillas:
1) El programa que uso (visual studio) cuando creo un .cpp me crea automáticamente el constructor y destructor de las clases. ¿Es necesario tener un destructor? Si es que si, ¿cómo lo hago? (el objeto de la clase es char * op[2])

2) Tengo una class A de la que herendan class B y class C. De class B herendan class B-1 y class B-2, y de class C heredan class C-1 y class C-2. Si tengo un método en class A que quiero que tengan todas las clases "hojas" (es decir, class C-1, C-2, B-1, B-2) en class A lo tengo que declarar como "abstract"?

3) Y este método del que hablo, en el .h, donde pongo las cabeceras, lo pongo en la parte de class A. Las demás clases, ya qeu heredan de A, ya lo tienen. ¿Hay que ponerlo en las demás clases en el .h también?

Espero haberme explicado, muchas gracias
  #12 (permalink)  
Antiguo 09/04/2007, 14:20
Kal
 
Fecha de Ingreso: marzo-2007
Mensajes: 17
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Empezando con C++, dudilla

Cita:
1) El programa que uso (visual studio) cuando creo un .cpp me crea automáticamente el constructor y destructor de las clases. ¿Es necesario tener un destructor? Si es que si, ¿cómo lo hago? (el objeto de la clase es char * op[2])
No, el destructor es cuando el constructo o en sí la clase aloja memoria dinámica. Y el destructor se llama como la clase, pero le pones antes un "~", por ejemplo:
Código PHP:
class Clase {
public:
Clase(); // constructor predeterminado
~Clase(); // Destructor
private:
// Elementos privados
}; 
Cita:
2) Tengo una class A de la que herendan class B y class C. De class B herendan class B-1 y class B-2, y de class C heredan class C-1 y class C-2. Si tengo un método en class A que quiero que tengan todas las clases "hojas" (es decir, class C-1, C-2, B-1, B-2) en class A lo tengo que declarar como "abstract"?
Te recomiendo que leas más sobre herencia múltiple y polimorfismo
Cita:
3) Y este método del que hablo, en el .h, donde pongo las cabeceras, lo pongo en la parte de class A. Las demás clases, ya qeu heredan de A, ya lo tienen. ¿Hay que ponerlo en las demás clases en el .h también?
Se ponen arriba, tal y como incluyes:
Código PHP:
#include <iostream> 
Espero que sea de ayuda.
  #13 (permalink)  
Antiguo 09/04/2007, 15:30
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años
Puntos: 2
Re: Empezando con C++, dudilla

Hola:

Sobre lo del destructor, me refería a si siempre es necesario, y particularmente en mi caso donde declaro en la clase char op[2]. ¿Es necesario que tenga yo, en mi caso, un destructor?

Lo demás creo que me expliqué mal. En mi programa tengo un ejercicio.h, donde tengo la declaracion de clases y métodos, y un ejercicio.cpp donde los implemento. Si en ejercicio.h tengo una class A con un método X y una class B que hereda de class A, B hereda el método X de A.
En ejercicio.h, dentro de class B: public A, ¿tengo que poner también la declaración del método X?
  #14 (permalink)  
Antiguo 09/04/2007, 18:19
Kal
 
Fecha de Ingreso: marzo-2007
Mensajes: 17
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Empezando con C++, dudilla

Cita:
Iniciado por CarlaMedina Ver Mensaje
Hola:
Sobre lo del destructor, me refería a si siempre es necesario, y particularmente en mi caso donde declaro en la clase char op[2]. ¿Es necesario que tenga yo, en mi caso, un destructor?
No, al salir del ámbito, deja de existir.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:20.