¿Entonces lo dejo como sugerencia que salga así por defecto (cambia el primer post), o cierro ya el hilo?
A mi no me importaría que lo pusiera por defecto con el año :icon_cheesygrin:
¿Entonces lo dejo como sugerencia que salga así por defecto (cambia el primer post), o cierro ya el hilo?
A mi no me importaría que lo pusiera por defecto con el año :icon_cheesygrin:
Post #3
Bueno, perdón a todos por el retraso, aquí viene una nueva entrega. Me compré otro micro pero se me fastidió antes de poder grabar el vídeo y se oye MUY flojo, así que este también será escrito.
Antes de seguir me gustaría explicar bien qué es una estructura, porque parece que cuesta entenderlo. Cuando antes hacíamos:
struct mi_estructura {
int num1;
int num2;
char array[20];
};
NO estábamos creando ninguna variable (en este caso mi_estructura NO es una variable), sino un tipo de datos. Eso significa que a partir de ahora podemos hacer variables en vez de de tipo "int" o "float", de tipo mi_estructura. Cada una de esas variables de tipo mi_estructura tendrá dos números enteros (num1 y num2) y un array de 20 caracteres (array). En cierto modo se podría decir que mi_estructura es como una "plantilla" para hacer muchas variables que tengan determinados "campos". Espero que esto quede claro, porque las clases son muy parecidas a las estructuras. Otra forma de verlo es la siguiente: si los arrays eran conjuntos de variables que se diferenciaban entre sí por posición (0, 1, 2...), las estructuras con conjuntos de variables que se diferencian entre sí por nombre (num1, num2, array...).
Ahora sí, empecemos con las clases. Esta es la diferencia más grande entre C y C++: que C++ es un lenguaje orientado a objetos y por tanto podemos crear clases, en C no. Una clase es algo muy parecido a una estructura, también es una especie de "plantilla" para luego crear variables de ese tipo. Sin embargo, tiene algunas mejoras, por ejemplo podemos restringir a qué campos se puede acceder y a qué campos no. Vamos a verlo con más detalle. Creemos una clase de tipo "aula" con un campo numero_de_alumnos y otro campo nombre_del_profesor.
class aula {
int numero_de_alumnos;
char nombre_del_profesor[40];
};
Como veis es muy parecido. Este código se pondría encima de main para usarlo después. Primero la palabra clave "class", para indicar que estamos "declarando" una clase. Después el nombre de la clase. En este caso, aula. A continuación una llave de apertura, seguida de todos los campos, cada uno terminado en ";". Y por último, una llave de cierre y otro punto y coma. A partir de ahora podemos crear variables de tipo "aula". Sin embargo, todas las variabes cuyo tipo sea una clase se llaman objetos. Es decir, que si hacemos ahora por ejemplo una variable:
aula primero_A;
"primero_A" será un objeto. Esto es muy importante y a partir de ahora a las variables cuyo tipo sea una clase siempre las llamaré objetos. Ahora sin embargo, si intentamos acceder al campo número de alumnos del objeto primero_A, de esta forma, nos dará error:
primero_A.numero_de_alumnos = 26;
A mi el error que me da es este: "error: 'int aula::numero_de_alumnos' is private". Bien, esto es algo complicado. En las clases, podemos restringir desde dónde se pueden usar los campos de la clase y desde donde no se puede. Por defecto, todos los campos son privados a no ser que se indique lo contrario, es decir, que solo se puede acceder a esos campos desde dentro de la clase. Es decir, si tenemos alguna función que pertenezca a la clase, esa función podrá acceder a esos campos, sin embargo fuera de la clase no se pueden usar. Para hacer que se pueda acceder a los campos desde cualquier sitio, tenemos que poner en la clase la palabra clave "public" seguida del signo dos puntos (:). A partir de ahí, y hasta que no se indique lo contrario, todos los campos de la clase son privados. Por ejemplo, vamos a hacer que se pueda acceder al campo número de alumnos desde fuera de la clase, pero al campo "nombre_del_profesor" no:
#include
using namespace std;
class aula {
char nombre_del_profesor[40];//como no se ha indicado lo contrario, este campo es privado por defecto
public://ya hemos indicado que los campos que declaremos aquí debajo serán públicos (pero los de encima no)
int numero_de_alumnos;
};
int main() {
aula primero_A;//creamos un objeto (primero_A) de tipo aula
primero_A.numero_de_alumnos = 26;//no da ningún error
cout << primero_A.numero_de_alumnos << endl;//tampoco da error aquí
return 0;
}
Supongamos que queremos hacer un campo que sea privado, pero no queremos ponerlo encima de los públicos. ¿Adivináis que palabra clave hay que poner? Exacto, "private" seguido de dos puntos (:). Tiene sentido, ¿no?
Aunque todavía no lo vamos a ver, hay otra palabra clave: protected.
Ahora estoy falto de inspiración, más tarde editaré y pondré ejercicios. PREGUNTAD todas las dudas que tengáis, es importante entenderlo todo bien!!
Bueno, pues no sé si posteé por ahí que en la Olimpiada Informática de la Región de Murcia quedé segundo, entonces me he clasificado para la Olimpiada informática española, que se celebra en Barcelona los próximos días 27 y 28. Saldré en avión un día antes y volveré un día después, y, lo más probable es que al volver ya me quede en la playa todo el verano :icon_cool:
En verano no tengo internet, puede que alguna tarde vaya a la biblioteca que tiene wifi, pero no esperéis que me pase mucho por el foro hasta que se pase el calorcito :icon_cheesygrin:. De todas formas tranquilos, volveré en septiembre con energías renovadas. Así que bueno, os echaré de menos y... ¡Ah, sí! Deseadme suerte (aunque no creo que quede muy bien, son unos máquinas los demás >_
@Joaking said:
No sera pa tanto el vicio de UJ xDDD
Te digo lo mismo que los 2 anteriores, y si es por el bach, pasarte unos 5 min al dia puedes no?
Yo voy a bachiller y... Bueno, ya ves xDDD
Bueno, te echaremos de menos Oveer, aunque te digo lo mismo que le dije a miki, vuelves fijo u.u
xDD
@Anzert said:
@Hawkings said:
Pues a mi me encantan los dos, es más, a mi me gustan más si están muy recargados xDD
Solo hay una cosa que quiero decirte, lo siento pero es que soy un maniático de las faltas de ortografía u.u se escribe "suBscribe" no "suscribe" xD, pero en serio me encantan, sobre todo la profundidad que has conseguido crear en el de Almanzor :in-love:
La Real Academia acepta ambas. pero recomienda "SUSCRIBIRSE". Es una palabra que va evolucionando, como "obscuridad= oscuridad" o "substancia= sustancia". :icon_redface:
Que pena que la real academia española no tenga diccionario de inglés, ¿eh? :icon_cheesygrin:
En serio, se escribe "subscribe" _xD_
Si se marea por la sed, tiene permiso para desmayarse xDDDDD hay voces buenísimas, aquí un video con muchas de ellas:
A mi me parece genial además me ahorro el trabajo, es más si quieres repetir los míos que quedaron con bordes blancos por mi perfecto
[scroll]:trollface:[/scroll]
Y por cierto, te voy avisando que salva no los va a querer de ese tamaño U.U aunque la verdad a mí me gustan más así xD