Después de varios días siguiendo los video-tutoriales de Jesus Conde y apoyándome en algunos libros que encontré, he llegado al final de las clases y objetos (o al menos por ahora se pasa a otro tema). Asi pues aqui comento las dudas que me han quedado:
1- En algunas guías añaden el siguiente código después de llamar a las librerías:
Código:
using namespace std;
Mientras que en otras pone lo siguiente dentro de main:
Código:
using std::cout;
using std::cin;
usgin std::endl;
using std::cin;
usgin std::endl;
¿Para qué es este código?, podría suponer que es para que funcione "cout, cin y endl", sin embargo eso va dentro de la librería "iostream", ¿entonces qué hace este código exactamente?.
2- En este ejemplo:
Código:
#include <iostream>
int myFunc(unsigned short int x);
int main()
{
unsigned short int x, y;
x = 7;
y = myFunc(x);
std::cout << "x: " << x << " y: " << y << "\n";
return 0;
}
int myFunc(unsigned short int x)
{
return (4*x);
}
int myFunc(unsigned short int x);
int main()
{
unsigned short int x, y;
x = 7;
y = myFunc(x);
std::cout << "x: " << x << " y: " << y << "\n";
return 0;
}
int myFunc(unsigned short int x)
{
return (4*x);
}
Es obligatorio mandarle un valor a "unsigned short int x" desde:
Citar
y = myFunc(x);
Sé que este valor se puede modificar dentro de la función, ¿pero no hay ninguna forma de dejarlo vacio, es decir, no inicializarlo?.
3- He dado la herramienta "inline", sin embargo, ¿cuántas líneas como máximo puede tener una función para que el usar inline sea efectivo?, ya que según he leído llegado a un punto degrada el programa.
4- ¿El siguiente prototipo de función es considerado como inline por el compilador (como en el caso de las clases) o hay que añadirle la palabra "inline"?, mi duda surje debido a que se define la función en el prototipo:
Citar
#include <iostream>
using namespace std;
int funcion1 (int numero) { return numero * 5; }
int main ()
{
int x;
x = funcion1 (5);
cout << "Prueba.";
return 0;
}
using namespace std;
int funcion1 (int numero) { return numero * 5; }
int main ()
{
int x;
x = funcion1 (5);
cout << "Prueba.";
return 0;
}
5- Entre los ejercicios de un libro escrito por Pello Xabier Altadill Izura encontré este:
Código:
#include <iostream>
using namespace std;
int main ()
{
// Sacamos el tamaño de cada tipo
cout << "El tamaño del int es:\t\t" << sizeof(int) << " bytes.\n";
cout << "El tamaño del short es:\t" << sizeof(short int) << " bytes.\n";
cout << "El tamaño del long es:\t" << sizeof(long int) << " bytes.\n";
cout << "El tamaño del char es:\t\t" << sizeof(char) << " bytes.\n";
cout << "El tamaño del float es:\t\t" << sizeof(float) << " bytes.\n";
cout << "El tamaño del double es:\t" << sizeof(double) << " bytes.\n";
// Sacamos por salida standar un mensaje
cout << "Termino el programa\n";
return 0;
}
using namespace std;
int main ()
{
// Sacamos el tamaño de cada tipo
cout << "El tamaño del int es:\t\t" << sizeof(int) << " bytes.\n";
cout << "El tamaño del short es:\t" << sizeof(short int) << " bytes.\n";
cout << "El tamaño del long es:\t" << sizeof(long int) << " bytes.\n";
cout << "El tamaño del char es:\t\t" << sizeof(char) << " bytes.\n";
cout << "El tamaño del float es:\t\t" << sizeof(float) << " bytes.\n";
cout << "El tamaño del double es:\t" << sizeof(double) << " bytes.\n";
// Sacamos por salida standar un mensaje
cout << "Termino el programa\n";
return 0;
}
Me ha extrañado un poco el ver que el tamaño de "int," el de "long int" y el de "float" es de 4 bytes, si ocupan lo mismo ¿por qué uno puede almacenar números más altos que otro?.
6- Cuando creamos una clase declaramos algunas variables y funciones miembro como públicas y otras como privadas. Luego están las funciones "accessor", que sirven para poder acceder a un miembro privado atraves de uno público, hasta ahi lo entiendo. ¿Pero qué necesidad hay de declarar una variable o función como privada y luego manejarla através de una función accessor?, ¿qué problema puede haber con declararlo todo público (o al menos lo que sabes que vas a usar fuera de la clase)?.
|----------------------------------------------------------------------------------------------------------------------------|
Creo que eso es todo, aunque hay demasiadas preguntas... las he ido acumulando para hacer un pack de dudas y no crear 9392 temas
Saludos!