elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda!! :clases y funciones [SOLUCIONADO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda!! :clases y funciones [SOLUCIONADO]  (Leído 3,680 veces)
anamnesis_92

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Ayuda!! :clases y funciones [SOLUCIONADO]
« en: 24 Enero 2012, 18:08 pm »

Hola a todos, tengo un programa con varias clases y funciones (que hacen referencia a instancias de estas clases) pero al compilar me salta error a menos de pase las instancias como parámetro de la función; pero tengo muchas funciones y muchas clases. Tiene que haber alguna manera de hacerlo más fácil, pero acabo de empezar con c++ y no se hacerlo, espero que me podáis ayudar, gracias a todos por adelantado


« Última modificación: 24 Enero 2012, 19:10 pm por anamnesis_92 » En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Ayuda!! :clases y funciones
« Respuesta #1 en: 24 Enero 2012, 18:30 pm »

Pon el código que da problemas y te podremos ayudar.


En línea

anamnesis_92

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Ayuda!! :clases y funciones
« Respuesta #2 en: 24 Enero 2012, 18:43 pm »

Es que el programa es realmente largo, pero he probado haciendolo con programitas mas simples a ver si funcionaba. Es así, no tiene mas:
Código:
#include <iostream>
class Clase
{
    public:
    int x;

};
int funcion();
int main()
{
    Clase clase1;
    funcion();
return 0;
}

int funcion()
{
   clase1.x =3
return 0;
}


me sale
In function 'int funcion()':
Line 19: error: 'clase1' was not declared in this scope
compilation terminated due to -Wfatal-errors.

y si la paso como parámetro no, pero no puedo pasarle 10 instancias a cada clase.....
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Ayuda!! :clases y funciones
« Respuesta #3 en: 24 Enero 2012, 18:48 pm »

Es que el programa es realmente largo, pero he probado haciendolo con programitas mas simples a ver si funcionaba. Es así, no tiene mas:
Código:
#include <iostream>
class Clase
{
    public:
    int x;

};
int funcion();
int main()
{
    Clase clase1;
    funcion();
return 0;
}

int funcion()
{
   clase1.x =3
return 0;
}


me sale
In function 'int funcion()':
Line 19: error: 'clase1' was not declared in this scope
compilation terminated due to -Wfatal-errors.

y si la paso como parámetro no, pero no puedo pasarle 10 instancias a cada clase.....

cuando declaras variables de una clase es como que declares de tipo normal y se comportan casi igual que las normales entonces
si queres hacer modificaciones sobre la variable "clase1" tenes que declararla como global o pasarlo como parametro a la funcion porque la funcion "funcion"
en ese codigo no tiene alcance de la variable clase1 que queres modificar, por cierto te falta el punto y coma en clase1.x = 3
En línea

anamnesis_92

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Ayuda!! :clases y funciones
« Respuesta #4 en: 24 Enero 2012, 18:54 pm »

Muchas gracias, pero otra cosa, según tengo entendido para declarar instancias globales las tengo que declarar fuera del main, debajo de la declaración de las clases, pero si necesito hacerlo dentro de una función o en otro lado, como lo hago?¿
En línea

Uknow

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda!! :clases y funciones
« Respuesta #5 en: 24 Enero 2012, 19:01 pm »

Muchas gracias, pero otra cosa, según tengo entendido para declarar instancias globales las tengo que declarar fuera del main, debajo de la declaración de las clases, pero si necesito hacerlo dentro de una función o en otro lado, como lo hago?¿

Se declara junto con la clase. es igual q las estructuras o con los enums. =p

fijate:
Código
  1. #include <iostream>
  2.  
  3. class Clase
  4. {
  5.    public:
  6.    int x;
  7.  
  8. }clase3;
  9.  
  10. int funcion();
  11.  
  12. int main()
  13. {
  14.    funcion();
  15.    std::cout << clase3.x;
  16.    std::cin.get();
  17. return 0;
  18. }
  19.  
  20. void funcion()
  21. {
  22.   clase3.x = 3;
  23. }
  24.  
En línea

anamnesis_92

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Ayuda!! :clases y funciones
« Respuesta #6 en: 24 Enero 2012, 19:03 pm »

lo que digo es que como lo hago si necesito que una funcion cree una instancia
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Ayuda!! :clases y funciones
« Respuesta #7 en: 24 Enero 2012, 19:05 pm »

yo creo que no se puede crear un objeto de una clase en una funcion y despues retornarla porque ese objeto es local
pero si no retorna es como lo haz hecho:

Código:
Clase clase1


En línea

anamnesis_92

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Ayuda!! :clases y funciones
« Respuesta #8 en: 24 Enero 2012, 19:10 pm »

Muchas gracias de todas formas!
En línea

Uknow

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda!! :clases y funciones
« Respuesta #9 en: 24 Enero 2012, 19:25 pm »

lo que digo es que como lo hago si necesito que una funcion cree una instancia
Es lo mismo que con cualquier otro tipo de dato, lo declaras dentro de la funcion y retornas la clase.

fijate:
Código:
#include <iostream>

class Clase
{
    public:
    int x;

};

Clase funcion();

int main()
{
    Clase clase3 = funcion();
    std::cout << clase3.x;
    std::cin.get();
return 0;
}

Clase funcion()
{
   Clase clase3;
   clase3.x = 3;
   return clase3;
}

saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO] C# - Duda sobre interfaz en clases
.NET (C#, VB.NET, ASP)
AlonsoCN 3 5,370 Último mensaje 21 Octubre 2009, 23:29 pm
por murdock_
Heredar objeto entre clases [SOLUCIONADO]
PHP
Alex_bro 0 1,382 Último mensaje 22 Agosto 2011, 21:18 pm
por Alex_bro
error cuando practico con clases (solucionado)
Programación C/C++
flony 4 3,583 Último mensaje 18 Junio 2012, 22:24 pm
por flony
doble duda (arreglo dinamico y funciones entre clases)
Programación C/C++
rulovive 5 3,162 Último mensaje 5 Abril 2014, 22:11 pm
por rulovive
Problema con Clases y Funciones POO (Python)
Scripting
DeMoNcRaZy 2 3,242 Último mensaje 23 Enero 2022, 14:05 pm
por DeMoNcRaZy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines