Nuevas NORMAS para el foro
Bienvenido(a),
Visitante
. Favor de
ingresar
o
registrarse
.
¿Perdiste tu
email de activación?
- Julio 27, 2008, 02:52:40
Boton Buscar
Visita:
Articulos
-
Juegos Gratis
-
Da Foros
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
Problema con clase c++
0 Usuarios y 1 Visitante están viendo este tema.
« anterior
próximo »
Páginas:
[
1
]
Autor
Tema: Problema con clase c++ (Leído 185 veces)
placa4
Habitual
Desconectado
Mensajes: 155
Problema con clase c++
«
en:
Enero 19, 2008, 04:26:38 »
Hola, acabo de hacer un codigo de c++ para practicar clases, que es de lo ultimo que voy aprendiendo e intentando hacer, pero me he quedado atrancado en la ejecución de las funciones miembro de la clase con un condicional switch. Ahí va el code y después la pregunta.
Código:
#include <iostream>
int main(int Sel)
{
class Fraccion{
private:
int numerador;
int denominador;
public:
void IntroducirFraccion(int n, int d){
std::cout << "Introduce el numerador: ";
std::cin >> n;
numerador = n;
std::cout << std::endl << "Introduce el denominador: ";
std::cin >> d;
denominador = d;
}
void MostrarDen(int d){
d = denominador;
std::cout << d;
}
void MostrarNum(int n){
n = numerador;
std::cout << n;
}
int MostrarRes(int res, int n, int d){
n = numerador;
d = denominador;
res = n / d;
return res;
}
void IntroducirDen(int d){
std::cin >> d;
denominador = d;
}
void IntroducirNum(int n){
std::cin >> n;
numerador = n;
}
} f;
std::cout << "Test de ejecucion de funciones miembro en una clase\n";
std::cout << "1: Funcion Introducir Fraccion\n";
std::cout << "2: Funcion Mostrar Denominador\n";
std::cout << "3: Funcion Mostrar Numerador\n";
std::cout << "4: Funcion Mostrar Resultado\n";
std::cout << "5: Funcion Introducir Denominador\n";
std::cout << "6: Funcion Introducir Numerador\n";
std::cin >> Sel;
switch (Sel){
case 1:
void IntroducirFraccion(int n, int d);
case 2:
void MostrarDen(int d);
case 3:
void MostrarNum(int n);
case 4:
int MostrarRes(int res, int n, int d);
case 5:
void IntroducirDen(int d);
case 6:
void IntroducirNum(int n);
};
return 0;
}
No se, al ejecutar no devuelve nada es por el valor void aunque lleve expresiones dentro? es porque la clase esta declarada en el main()?
No, yo creo que es porque aun no he creado ninguna variable de tipo fraccion, pero de ser asi, como se hace? Es que de clases me estoy emnterando ahora.
Gracias por leerlo aunque sea.
Salu2
PD:Me da que es una tontería lo que me falta, pero la tontería no la consigo pillar.
En línea
El futuro está en versión Beta.
La aleatoriedad no existe, sólo una complejidad tan extrema que el ser humano es aún incapaz de comprenderla.
FreakMind
Habitual
Desconectado
Mensajes: 181
Re: Problema con clase c++
«
Respuesta #1 en:
Enero 19, 2008, 09:06:07 »
Buenas
Trata con
f.nombre_metodo()
Salu2, FreakMind
En línea
Connoisseurs of C semantics find C++ inferior to ++C
placa4
Habitual
Desconectado
Mensajes: 155
Re: Problema con clase c++
«
Respuesta #2 en:
Enero 19, 2008, 11:54:50 »
Creo que no me va o que lo hice mal, me puedes poner un ejemplo por favor?
Salu2
PD:Gracias por responder
En línea
El futuro está en versión Beta.
La aleatoriedad no existe, sólo una complejidad tan extrema que el ser humano es aún incapaz de comprenderla.
PuBLiC PeRVeRT
Habitual
Desconectado
Mensajes: 173
PuBLiC PeRVeRT
Re: Problema con clase c++
«
Respuesta #3 en:
Enero 19, 2008, 01:56:50 »
Estube viendo el codigo, y creo que las clases por lo general se declaran fuera del cuerpo principal ( antes del main ), y no te muestra nada porque si te fijas el case que tienes tan solo te pide una opcion y despues no muestra nada, osea puedes tan solo ingresar una fraccion y ya, o mostrar la fraccion y ya, tambien algo es que no me quedo muy claro que es lo que hace el programa, ahorita estoy en el trabajo y no tengo compilador de c aqui, si quieres en la tarde te pongo un ejemplo sencillo mejor explicado.
Saluts
En línea
"Espacio angosto es mi lugar, camino hacia el frente sin mirar sin mirar atras, puedo cambiar el tiempo, puedo volar sin miedo..."
lann
Habitual
Desconectado
Mensajes: 309
maamamma
Re: Problema con clase c++
«
Respuesta #4 en:
Enero 19, 2008, 05:46:17 »
estas declarando una clase adentro de main...
saca la clase de esa funcion
aparte solo pon los prototipos de funciones adentro de la declaracion de la clase, y las definiciones de esas funciones las pones afuera poniendo
void nombreDeClase::Funcion()
{
//...
}
«
Última modificación: Enero 19, 2008, 05:55:33 por lann
»
En línea
am
placa4
Habitual
Desconectado
Mensajes: 155
Re: Problema con clase c++
«
Respuesta #5 en:
Enero 20, 2008, 04:33:12 »
Esta bien lann, haré todo lo que dices haber si funciona esta vez. Public Pervert (xD vaya nombre), el código es c++, y no quise hacer nada en concreto, sólo una prueba de una clase y lo primero que se me ocurrió fue hacer la de una fraccion, y,
ya que estaba, poner unas funciones miembro para acomplejarla.
Salu2
PD:Intentaré poner el code rápido, tengo que estudiar...
En línea
El futuro está en versión Beta.
La aleatoriedad no existe, sólo una complejidad tan extrema que el ser humano es aún incapaz de comprenderla.
placa4
Habitual
Desconectado
Mensajes: 155
Re: Problema con clase c++
«
Respuesta #6 en:
Enero 20, 2008, 08:24:23 »
Ya rehice el codigo, pero el metodo para ejecutar las funciones miembro de freakmind me sigue sin funcionar, ahora, ¿cómo hago para ejecutar las funciones sobre f?
Code:
#include <iostream>
class Fraccion{
private:
int numerador;
int denominador;
public:
void IntroducirFraccion(int n, int d);
void MostrarDen(int d);
void MostrarNum(int n);
int MostrarRes(int res, int n, int d);
void IntroducirDen(int d);
void IntroducirNum(int n);
} f;
void Fraccion::IntroducirFraccion(int n, int d)
{
std::cout << "Introduce el numerador: ";
std::cin >> n;
numerador = n;
std::cout << std::endl << "Introduce el denominador: ";
std::cin >> d;
denominador = d;
}
void Fraccion::MostrarDen(int d)
{
d = denominador;
std::cout << d;
}
void Fraccion::MostrarNum(int n)
{
n = numerador;
std::cout << n;
}
int Fraccion::MostrarRes(int res, int n, int d)
{
n = numerador;
d = denominador;
res = n / d;
return res;
}
void Fraccion::IntroducirDen(int d)
{
std::cin >> d;
denominador = d;
}
void Fraccion::IntroducirNum(int n)
{
std::cin >> n;
numerador = n;
}
int main(int Sel)
{
std::cout << "Test de ejecucion de funciones miembro en una clase\n";
std::cout << "1: Funcion Introducir Fraccion\n";
std::cout << "2: Funcion Mostrar Denominador\n";
std::cout << "3: Funcion Mostrar Numerador\n";
std::cout << "4: Funcion Mostrar Resultado\n";
std::cout << "5: Funcion Introducir Denominador\n";
std::cout << "6: Funcion Introducir Numerador\n";
std::cin >> Sel;
switch (Sel){
case 1:
void IntroducirFraccion(int n, int d);
case 2:
void MostrarDen(int d);
case 3:
void MostrarNum(int n);
case 4:
int MostrarRes(int res, int n, int d);
case 5:
void IntroducirDen(int d);
case 6:
void IntroducirNum(int n);
};
return 0;
}
Salu2
En línea
El futuro está en versión Beta.
La aleatoriedad no existe, sólo una complejidad tan extrema que el ser humano es aún incapaz de comprenderla.
lann
Habitual
Desconectado
Mensajes: 309
maamamma
Re: Problema con clase c++
«
Respuesta #7 en:
Enero 20, 2008, 08:16:40 »
placa4 no es por ofender pero faltan varias cosas y recomiendo que les des una leidita a alguna introduccion a clases en c++, te recomiendo que bajes el ebook de ebookshare.net de deitel & deitel how to program c++
nesesitas crear un objeto de la clase que creaste, y llamar las funciones con el objeto que creaste amenos que sea static pero bueno eso despues
Fraccion frac; // y pues como no tiene constructor pues no lo pones
y las llamas por ejemplo
frac.MostrarDen()...
pero veo que pusiste esa f al final asi que llamalas con f aunque este raro...
aparte eso de que main reciba Sen se me hace medio... raro..
no le veo el caso a
asignarle a n un valor privado de la clase, si son funciones de la clase pueden usar los valores privados de la clase, aparte te recomiendo mejor que uses funciones get y set para tus valores privados, solo seria para mejorar buenas practicas de programacion con objetos y tener algo de encapsulamiento...
bien mientras escribia lo anterior me di cuenta de que oid void Fraccion::MostrarNum(int n) toma n por eso la asignas a numerador =p... pero bien, igualmente ya tienes funciones set que serian las "introducir"... para mostrar no nesesitas asignarle un valor nuevamente a numerador ya que supongo que para mostrarlas anteriormente les abras puesto valor con tus funciones "introducir" (set)... un tip que en este caso puede que no sirva de mucho es usar constructores o igual ya en la declaracion de la clase para inizializar tus valores a 0 o algun otro valor por si se llegan a referir a ellos sin aberles puesto valor.
«
Última modificación: Enero 20, 2008, 08:18:03 por lann
»
En línea
am
placa4
Habitual
Desconectado
Mensajes: 155
Re: Problema con clase c++
«
Respuesta #8 en:
Enero 21, 2008, 04:02:04 »
Tranquilo
, no ofendes, es mas, lo he preguntado para que me deis consejo los que sabeis, le echare otra leida para entenderlo mejor. A ver si me bajo tambien ese ebook de la pagina. No se, eso de Sel, no lo veo yo tan raro, lo he puesto para que introduzcas el valor y asi el pregrama sepa que funcion hay que llamar.
Y entonces no esta bien la f que puse al final? De verdad, admito que le tengo que echar otra leida, porque no entiendo una mier... Bueno, pero la f la toma como un objeto, aunque no haya puesto delante fraccion, es decir:
Fraccion f; No es lo mismo asi?:
} f;
Porque el compilador no devuelve error, y asi es como hacia yo para los struct.
Salu2, le pego otra leida y haber si me puedo arreglar con este lio xD.
PD: Gracias por responder.
«
Última modificación: Enero 21, 2008, 04:04:08 por placa4
»
En línea
El futuro está en versión Beta.
La aleatoriedad no existe, sólo una complejidad tan extrema que el ser humano es aún incapaz de comprenderla.
Páginas:
[
1
]
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
Problema con clase c++
« anterior
próximo »
Ir a:
Por favor selecciona un destino:
-----------------------------
Foros De Consulta General
-----------------------------
=> Novedades
=> Dudas, Comentarios Y Sugerencias
=> Top 100
=> Off-Topic
=> Revista E-Zine
===> Noticias
-----------------------------
Phreaking, Hacking y Seguridad
-----------------------------
=> HacK GeneraL
===> Ingenieria Inversa
===> Encriptacion, Cryptografia
===> TV HACK
===> Seguridad
===> Cursos y Ezines
=====> Trucos Internet
=====> Textos Hacking
===> Defacing
=> Phreaking
===> Moviles
=> Bug y Exploits
-----------------------------
Hack Novato
-----------------------------
=> Hack para newbies
=> Todo Messenger
=> Troyanos y virus
-----------------------------
Sistemas Operativos
-----------------------------
=> Windows y otros sistemas operativos no libres
===> Problemas Tecnicos Windows
=> Sistemas operativos libres.
===> GNU/Linux
===> Manuales y Tutoriales
===> Descargas
-----------------------------
Programacion
-----------------------------
=> Programación
===> Programación Basica
===> Otros Lenguajes
===> Visual Basic y Net
===> ASM
===> Programacion Shell
===> Perl
===> Carbide C/C#/C++
===> Batch
===> SQL
=> Programacion para webmasters
===> Consultas
===> Php
===> Html
===> Java - Java Script
===> Php Nuke
===> Scripts Pre-Fabricados
===> Mysql
===> CSS y Diseño Web
-----------------------------
Artes Graficas
-----------------------------
=> Diseño Grafico
===> Battle Arts
===> Flash
===> Tutoriales
===> Galerías
===> Software
-----------------------------
Area Tecnica
-----------------------------
=> Networking & Wireless
=> Overclocking, Refrigeracion y demas
=> Hardware
===> Cursos Y manuales
=> Electronica Y Robotica
-----------------------------
Programas
-----------------------------
=> Software
===> Configuraciones de software
===> Pedidos de software
=> Cracks & Serialz
=> P2p, Bittorrent, Elinks
-----------------------------
Multimedia Y Divx
-----------------------------
=> Juegos PC Y Consolas
===> Dudas ayudas y comentarios de juegos
===> Pedidos de juegos
=> Mp3
=> Multimedia
=> Peliculas Divx
-----------------------------
Entretenimiento Y sitios de interes
-----------------------------
=> Juegos, Humor y Adultos. (Diversión)
===> Adultos
=> Paginas Webs Recomendadas
=> Videos
Powered by SMF 1.1.5
|
SMF © 2006-2007, Simple Machines LLC
Loading...