Miércoles 13 de Noviembre de 2024, 08:28
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
Problema principiante cargar modulo
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Problema principiante cargar modulo (Leído 2196 veces)
xuturk
Miembro activo
Mensajes: 50
Problema principiante cargar modulo
«
en:
Martes 12 de Octubre de 2010, 20:33 »
0
Hola a todos, vengo de java y no estoy muy acostumbrado a la mayoria de las cosas de C++ pero mas o menos entiendo la estructura y como hacer las cosas, el problema que tengo es con Visual C++ 2008 Express.
El caso es que estoy haciendo un programa en modo consola, y tengo archivos .cpp para cada una de las clases, de la misma forma que hacia en java, entonces pongamos que tengo una clase casa en un casa.cpp
Si tengo otro archivo cpp el cual llamo main y el que contiene la funcion main, como puedo hacer para crear objetos de la clase casa por ejemplo? digase como incluyo los datos de los demas modulos que he creado en el main.
Espero haberme explicado.
Muchas gracias y un saludo
Tweet
Radger
Nuevo Miembro
Mensajes: 15
Re: Problema principiante cargar modulo
«
Respuesta #1 en:
Martes 12 de Octubre de 2010, 20:43 »
0
Buenas
Veras las clases en c++ se distruyen en 1 archivo .cpp y otro .h. En el .h suele estar la declaracion de la clase y metodos y en el .cpp esta la definicion.
Por lo que para usar la clase casa tendrias que poner #include "casa.h" y ya podrias crear un objeto de casa.Si tienes la declaracion y definicion en el archivo cpp podras incluirlo tambien para usarlo en el main.cpp, aunque lo recomendable para tener el codigo ordenado es tener un .h y .cpp por clase.
Saludos
xuturk
Miembro activo
Mensajes: 50
Re: Problema principiante cargar modulo
«
Respuesta #2 en:
Miércoles 13 de Octubre de 2010, 18:23 »
0
Hola de nuevo, desde ayer que me escribiste eso, que he estado intentandolo, pero nada no hay manera, llevas razon en lo de encabezado por que he encontrado mucha informacion por internet, que me viene ha decir mas o menos lo que has puesto tu, pero no hay forma de que me compile, te contare lo que hago a ver si me puedes ayudar:
creo Archivo.h
y dentro escribo
Código: C++
class
Archivo
{
private
:
int
dato
;
public
:
void
funcion
(
)
;
}
depues tengo el .cpp donde relleno lo que he escrito en la clase:
Archivo.cpp
Código: C++
#include "Archivo.h"
class
Archivo
{
public
:
Archivo
::
funcion
(
)
{
dato
=
5
;
}
}
y en el main directamente no escribo nada de eso solo tengo un printf pero de por si no me lo compila, ¿que estoy haciendo mal? se que por mi costumbre a java quizas no estoy haciendo bien las cosas pero por mas vueltas que le doy no consigo avanzar, tambien lei que habia que escribir ifdef o algo asi en las .h pero no se para que y ademas vi ejemplos en los que no se escribia, pero tengo mucho lio en este aspecto.
Muchas gracias y un saludo!
Amilius
Miembro HIPER activo
Mensajes: 665
Re: Problema principiante cargar modulo
«
Respuesta #3 en:
Miércoles 13 de Octubre de 2010, 19:07 »
0
El problema es que te falta un punto y coma en tu .h y las definiciones en el .cpp no tienen la sintaxis correcta.
Esto debería funcionar con Visual C++:
1. Creas un proyecto vacío.
2. Agregas los siguientes archivos:
Clase1.h:
(Incluye en el ".h" todas las declaraciones y definiciones que deseas que sean visibles al resto del código. Es recomendable evitar agregar "#include" innecesarios en los ".h". Sólo es necesario incluir los encabezados que definan ancestros o miembros de clases definidas en el ".h", para el resto declara las clases indicando al compilador que serán definidas más adelante, ej.: "class Clase2;". )
Código: C++
// Este código evita que el precompilador agregue este encabezado más de una vez
#ifndef _CLASE1_H_
#define _CLASE1_H_
class
Clase1
{
public
:
Clase1
(
int
dato
)
;
void
función
(
)
;
static
Clase1 objetoEstático
;
private
:
int
_dato
;
}
;
#endif
Clase1.cpp:
(Incluye en el cpp todas las declaraciones y definiciones que NO deseas que sean visibles al resto del código. Si declaras una función o variable que no es miembro de una clase y no deseas que sea visible para otros archivos declárala como "static". Si tu clase utiliza otras clases, variables, tipos, "includes", etc cuya existencia no deseas que sea conocida por el resto del código entonces decláralos dentro del .cpp.)
Código: C++
#include <stdio.h>
#include "Clase1.h"
Clase1 Clase1
::
objetoEst
ático
(
2
)
;
Clase1
::
Clase1
(
int
dato
)
:
_dato
(
dato
)
{
}
void
Clase1
::
funci
ón
(
)
{
printf
(
"Dato: %in"
, _dato
)
;
}
main.cpp:
Código: C++
#include "clase1.h"
int
main
(
)
{
Clase1
::
objetoEst
ático.
funci
ón
(
)
;
return
0
;
}
Radger
Nuevo Miembro
Mensajes: 15
Re: Problema principiante cargar modulo
«
Respuesta #4 en:
Miércoles 13 de Octubre de 2010, 19:45 »
0
Buenas
El problema del codigo que pusiste es que declaras 2 veces la clase, pon esto en el Archivo.cpp y deberia compilar.
Código: C++
#include "Archivo.h"
void
Archivo
::
funcion
(
)
{
dato
=
5
;
}
xuturk
Miembro activo
Mensajes: 50
Re: Problema principiante cargar modulo
«
Respuesta #5 en:
Miércoles 13 de Octubre de 2010, 19:57 »
0
Hola de nuevo, muchas gracias por respodner tan pronto, el codigo que puse aqui era inventado jeje no hacia falta que te tomaras la molestia de andar con los mismos nombres, pero muchas gracias, te comento:
He seguido el modelo que has hecho tu, a excepcion del metodo estatico que devuelve un objeto clase, debido a que lo que quiero es crear una clase para que luego en el main pueda crear objetos para instanciarla, varios, pero me ha servido, ahora almenos compila, en el main creo un puntero de tipo habitacion y luego le instancio con new y realizo la accion, tengo unos pocos mas codos que estudiar jejeje pero almenos ya he conseguido hacerlo ahora a ver si me entero un poco mas del asunto, por que no se si es la falta de costumbre pero lo veo mas complicado que java jeje
Muchas gracias de nuevo un saludo
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
Problema principiante cargar modulo