enum semana {lunes,martes,miercoles,jueves,viernes,sabado,domingo} //declaración de la variable enum enum semana dia = Lunes; // esto es en C semana dia2 = martes; // esto es en C++
En C++ las variables >NO tienen que declararse al principio del bloque.
Existen desde que se declaran hasta el final del bloque.
Se pueden declarar variables en un for o dentro de el
for (int i=0 ,float t; i<10 ; i++){ // se declaran dos variables que tienen validez mientras dure el for float t_invertido; // esta variable durara solo mientras dure la iteración t=t+t_invertido; // t sumará las distintas t_invertidos que aparezca pero desaparecerá cuando se termine el for } // hay que decir que este programa es una mierda y cabe destacar que no se han inicializado ni t, ni t_invertido de manera que perderse es lo mejor que le puede pasar.
extern int proceso;// una variable que cuenta el estado del proceso.
int main (){ int x,y,z; // estas variables están definidas para durar toda la función main { int x; // esta variable solo dura mientras dure el programa pero desde que la declaro hasta que termine su bloque será esta a la que me esté refiriendo. } return 0;}Las variables más internas siempre tienen referencia y apantallan a las más externas
::x=3
en el ejemplo interior haría que la variable se refiriera a la x declarada junto a la y y la z
Const int dim=3; float punto[dim]; // en C esto daría un problema ya que no puedo declarar una variable de este modo pero en C++ no porque como no uso la referencia de dim esto no es una variable. // es un simbolo en cimpilacion
a= (int) a/b; //en C/C++ a= (int) (a/b); // en C/C++ a= int (a/b); // en CEn C se precisa que el cast esté entre paréntesis y hace referencia a lo que va a recibir el igual, en C++ el cast se puede hacer sin paréntesis pero hay que tener en cuenta que va a hacer esto sobre el elemento que encuentre a la derecha, razón por la cual precisa el paréntesis en la operación, de lo contrario solo actuaría sobre la a y no sobre el resultado de la fracción.
int var1= 3; int &var2 = var1;tanto var1 como var2 hacen referencia a la misma variable da igual como las utilices y que modificaciones hagas
int var1=3; const int &var2 = var1; // int &const var3=var1; // no tiene sentido las referencias siempre son constantes . var1=4; // permitido var2=5; // no permitido
Tienen la ventaja de ser nativos
new determina automáticamente el tipo de dato y su tamaño, no devuelve un punter a void (*void) con lo que se evita un cast
Si new no encuentra memoria disponible devuelve 0.
realloc es diferente pero puede utilizarse para redireccionar algo creado con new
int *puntero = NULL; // declaramos un puntero a entero con valor NULL (esto es porque no le tenemos asignada dirección). puntero = new int [10]; // reservamos memoria para 10 int y la dirección la ponemos en el puntero. float * plongitud = new float; // lo de antes se puede hacer en un solo paso y para un elemento en vez de para un vector // ahora para liberar memoria hay que tener en cuenta otra cosa más delete plongitud; // eliminar o borra o libera la memoria de este valor delete[] puntero; // para eliminar un vector es necesario poner entre corchetes la longitud del vector o por lo menos los corchetes. //En las primeras ediciones de C++ había que poner el valor "en este caso: delete[10] puntero;" pero en las actuales es perfectamente válida //la sentencia que se usa en este ejemplo.