Jueves 14 de Noviembre de 2024, 16:44
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++
(Moderador:
Eternal Idol
) »
c++ enum en un constructor
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: c++ enum en un constructor (Leído 2556 veces)
samu_dnet
Nuevo Miembro
Mensajes: 7
c++ enum en un constructor
«
en:
Jueves 10 de Septiembre de 2009, 20:48 »
0
Hola, ya suponia que esto generaria un error:
Código: C++
#include <iostream>
#include <string>
using
namespace
std
;
class
carta
{
private
:
char
simbolo
;
enum
valores
{
as,dos,tres,cuatro,cinco,seis,siete,ocho,nueve,diez,jota,cu,ka
}
;
enum
palos
{
picas,corazones,treboles,rombos
}
;
valores valor
;
palos palo
;
public
:
carta
(
char
Simbolo,valores Valor,palos Palo
)
{
simbolo
=
Simbolo
;
valor
=
Valor
;
palo
=
Palo
;
}
}
;
int
main
(
)
{
carta Carta
(
'a'
,dos,treboles
)
;
return
0
;
}
este error:
Código: Text
lnx@lnx-laptop:~/c++$ c++ pruebas.cc -o a.bin
pruebas.cc:11: error: ‘valores’ no nombra a un tipo
pruebas.cc:12: error: ‘palos’ no nombra a un tipo
pruebas.cc: In constructor ‘carta::carta(char, carta::valores, carta::palos)’:
pruebas.cc:20: error: ‘valor’ no se declaró en este ámbito
pruebas.cc:21: error: ‘palo’ no se declaró en este ámbito
pruebas.cc: In function ‘int main()’:
pruebas.cc:27: error: ‘dos’ no se declaró en este ámbito
pruebas.cc:27: error: ‘picas’ no se declaró en este ámbito
lnx@lnx-laptop:~/c++$ c++ pruebas.cc -o a.bin
pruebas.cc:11: error: ‘valores’ no nombra a un tipo
pruebas.cc:12: error: ‘palos’ no nombra a un tipo
pruebas.cc: In constructor ‘carta::carta(char, carta::valores, carta::palos)’:
pruebas.cc:20: error: ‘valor’ no se declaró en este ámbito
pruebas.cc:21: error: ‘palo’ no se declaró en este ámbito
lnx@lnx-laptop:~/c++$ c++ pruebas.cc -o a.bin
lnx@lnx-laptop:~/c++$ c++ pruebas.cc -o a.bin
pruebas.cc: In function ‘int main()’:
pruebas.cc:25: error: ‘dos’ no se declaró en este ámbito
pruebas.cc:25: error: ‘treboles’ no se declaró en este ámbito
ya supongo que los enum estan dentro de la clase y no existen en main, vamos que es imposible hacerlo asi, pero,
Como podria hacerlo??? algo parecido??
Tweet
Eternal Idol
Moderador
Mensajes: 4696
Nacionalidad:
Re: c++ enum en un constructor
«
Respuesta #1 en:
Viernes 11 de Septiembre de 2009, 12:02 »
0
Si los enum's fueran publicos podrias hacer esto:
Código: C++
carta Carta
(
'a'
,carta
::
dos
, carta
::
treboles
)
;
Nacional y Popular
En mi país la bandera de Eva es inmortal.
Queremos una Argentina socialmente justa, económicamente libre y políticamente soberana.
¡Perón cumple, Evita dignifica!
La mano invisible del mercado me robo la billetera.
samu_dnet
Nuevo Miembro
Mensajes: 7
Re: c++ enum en un constructor
«
Respuesta #2 en:
Viernes 11 de Septiembre de 2009, 14:49 »
0
PERFECTO!! Muchas GRACIAS!
Eternal Idol
Moderador
Mensajes: 4696
Nacionalidad:
Re: c++ enum en un constructor
«
Respuesta #3 en:
Viernes 11 de Septiembre de 2009, 17:24 »
0
De nadas
Nacional y Popular
En mi país la bandera de Eva es inmortal.
Queremos una Argentina socialmente justa, económicamente libre y políticamente soberana.
¡Perón cumple, Evita dignifica!
La mano invisible del mercado me robo la billetera.
samu_dnet
Nuevo Miembro
Mensajes: 7
Re: c++ enum en un constructor
«
Respuesta #4 en:
Sábado 12 de Septiembre de 2009, 01:43 »
0
T_T acabo de hacer unos cambios, y me lanza error, al parecer no me funciona, aunque lo he hecho todo mucho mas sencillo:
Código: C++
#include <iostream>
#include <string>
using
namespace
std
;
class
carta
;
int
main
(
)
{
carta micarta1
;
micarta1
=
new
carta
(
carta
::
as
, carta
::
rombos
)
;
micarta1.
mostrar
(
)
;
return
0
;
}
////////////////// C A R T A ///////////////////////////////////////////////
class
carta
{
//Variables y tipos propios
public
:
enum
valores
{
as,dos,tres,cuatro,cinco,seis,siete,ocho,nueve,diez,sota,reina,rei
}
;
enum
palos
{
picas,corazones,treboles,rombos
}
;
valores valor
;
palos palo
;
bool
ex
;
//Mostrar en Consola
void
mostrar
(
)
{
cout
<<
endl
<<
valores
(
valor
)
<<
endl
<<
palos
(
palo
)
<<
endl
;
}
//Constructor
carta
(
valores Valor,palos Palo
)
{
valor
=
Valor
;
palo
=
Palo
;
ex
=
false
;
}
}
;
Y este es el error:
Código: Text
pruebas.cc: In function ‘int main()’:
pruebas.cc:10: error: el agregado ‘carta micarta1’ tiene un tipo incompleto y no se puede definir
pruebas.cc:11: error: se utilizó el tipo incompleto ‘carta’ en un especificador de nombre anidado
pruebas.cc:11: error: se utilizó el tipo incompleto ‘carta’ en un especificador de nombre anidado
pruebas.cc:11: error: invalid use of incomplete type ‘struct carta’
pruebas.cc:6: error: forward declaration of ‘struct carta’
normalmente investigo yo el porque, pero que carajo significa anidado??? xD.
Gracias por la ayuda ante todo.
Eternal Idol
Moderador
Mensajes: 4696
Nacionalidad:
Re: c++ enum en un constructor
«
Respuesta #5 en:
Sábado 12 de Septiembre de 2009, 08:59 »
0
¿Para que pusiste el main antes? Si simplemente ponias public: antes de los enums con carta:: adelante de los enumerandos (?) funcionaba ...
Nacional y Popular
En mi país la bandera de Eva es inmortal.
Queremos una Argentina socialmente justa, económicamente libre y políticamente soberana.
¡Perón cumple, Evita dignifica!
La mano invisible del mercado me robo la billetera.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
c++ enum en un constructor