Trabis escribió:Has ignorado la solución más sencilla:
Cambia 'struct' por 'class' y te compilará sin problemas.
Y ahora te respondo a tu pregunta:
¿Has probado el editor
Codeblocks?. Es muy fácil de usar porque te encuentra los compiladores instalados.
-Si buscas una versión moderna de GCC para windows
Aquí encontrarás lo que buscas. Eso es una distro de MinGW con las librerias más populares. No olvides incluir la bandera "-std=c++11" cuando compiles pues GCC funciona con C++03 por defecto.
También te puedes bajar el MinGW
aquí.
-Segunda opción (recomendada):
https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspxAhí tienes el compilador de Microsoft totalmente gratis que es compatible también con C++11.
Gracias por tu respuesta!
Como he dicho, el tema es que estoy empezando a programar y aún no he llegado a las clases. De hecho acabo de empezar a ver las structs y hasta ahora he practicado lo más basico nada más: decisiones, bucles, vectores y matrices estáticos...
Así que me pierdo mucho con esto de los standards, compiladores...
De hecho sí, he probado con codeblocks y me ha costado un poquillo que tire el compilador (tras un error muy común por lo que he visto), pero lo he conseguido. Ahora he conseguido que la struct funcione con const, pero si pruebo con static me da errores del tipo:
error: local class 'struct main()::registro' shall not have static data member 'int main()::registro::edad' [-fpermissive]|
error: ISO C++ forbids in-class initialization of non-const static member 'main()::registro::edad'|Claro, aquí el problema es básicamente que no tengo ni puta idea
Por ejemplo, aún no entiendo bien lo de static y qué significa, o las diferencias entre eso y const.Tampoco logro entender por qué dicen que las struct deben usarse para valores sin modificar, y resulta que yo puedo hacer esto y no veo donde esta el problema:
struct registro
{
char nombre[5];
int edad;
int dinero;
};
int main()
{
registro juan;
strcpy(juan.nombre, "juan");
juan.edad=28;
juan.dinero=26000;
cout<<juan.nombre<<endl;
cout<<juan.edad<<endl;
cout<<juan.dinero<<endl;
registro pepe;
strcpy(pepe.nombre, "pepe");
pepe.edad=31;
pepe.dinero=36000;
cout<<pepe.nombre<<endl;
cout<<pepe.edad<<endl;
cout<<pepe.dinero<<endl;
Yo esto parece que funciona, pero eso, como dicen que deben usarse para valores sin modificar... (osea, con valores estáticos, o eso he entendido yo).
hay muchas cosas que se me escapan... tened en cuenta que llevo con las struct dos o tres días
Por otro lado, el compilador de code-blocks también es MinGW. ¿Me recomiendas cambiarlo por el de Microsoft?
amchacon escribió:Mucho mejor Codeblocks que mierdi-Dev-C++
:
http://www.codeblocks.org/downloads/26El segundo link de descarga (codeblocks-13.12mingw-setup.exe) incluye Codeblocks + Mingw. La tercera descarga es otro compilador (TDM-GCC), yo usaría el segundo.
Y si tienes la oportunidad, ponte Linux. Para el tema de programar y de instalar las herramientas es mucho más comodo.
Ya me he pasado al code-blocks, ya que no es la primera vez que lo oigo. Muchas gracias!
Lo de Linux ya se verá, las cosas poco a poco