Diferencia entre revisiones de «Programación C y C++»
Ir a la navegación
Ir a la búsqueda
Sin resumen de edición |
|||
| Línea 32: | Línea 32: | ||
== Pasar por referencia?¿ == | == Pasar por referencia?¿ == | ||
== Funciones dentro de las estructuras == | == Funciones dentro de las estructuras == | ||
Aplicable a C++. | *Aplicable a C++. | ||
Son funciones que manipulan los datos de dentro de la estructura. | *Son funciones que manipulan los datos de dentro de la estructura. | ||
=== Constructor === | === Constructor === | ||
*Los valores no iniciados con los constructores contendran "basura" | |||
*Se pueden definir varios constructores | |||
Forma 1: | |||
<pre> | |||
struct Punto { | |||
int x, y; | |||
Punto() {x = 0; y = 0;} // Constructor | |||
} Punto1, Punto2; | |||
</pre> | |||
Forma 2: | |||
<pre> | |||
struct Punto { | |||
int x, y; | |||
Punto(); // Declaración del constructor | |||
} Punto1, Punto2; | |||
// Definición del constructor, fuera de la estructura | |||
Punto::Punto() { | |||
x = 0; | |||
y = 0; | |||
} | |||
</pre> | |||
Es una función sin retorno y con el mismo nombre que la estructura. | Es una función sin retorno y con el mismo nombre que la estructura. | ||
=== Destructor === | === Destructor === | ||
Es igual pero con el simbolo ~ delante. | *Es igual pero con el simbolo ~ delante. | ||
=== Funciones === | |||
*Se pueden incluir otras funciones que se declaran y definen como las funciones normales. | |||
<pre> | |||
struct stPareja { | |||
int A, B; | |||
int LeeA() { return A;} // Devuelve el valor de A | |||
int LeeB() { return B;} // Devuelve el valor de B | |||
void GuardaA(int n) { A = n;} // Asigna un nuevo valor a A | |||
void GuardaB(int n) { B = n;} // Asigna un nuevo valor a B | |||
} Par; | |||
int main() { | |||
Par.GuardaA(15); | |||
Par.GuardaB(63); | |||
cout << Par.LeeA() << endl; | |||
cout << Par.LeeB() << endl; | |||
return 0; | |||
} | |||
</pre> | |||
== Documentación == | == Documentación == | ||
[http://c.conclase.net/curso/?cap=011#inicio Curso de C++ con clase]<br/> | [http://c.conclase.net/curso/?cap=011#inicio Curso de C++ con clase]<br/> | ||
Revisión del 20:40 5 mar 2013
Variables
unsigned signed uint8_t byte int long char
Estructuras
Definicion
Declaracion
struct nombre{<br/>
int variable1;<br/>
long variable2;<br/>
char variable3[40];<br/>
};
struct nombre pedro; //En C es obligatorio usar la palabra struct en la declaracion de un objeto struct, en C++ no lo es.
El objeto pedro es un struct de tipo nombre.
Otra forma de declarar:
struct nombre{
int variable1;
long variable2;
char variable3[40];
}pedro;<br/>
Para inicializar la variable pedro se hace como con los arrays,
pedro = {2, 40, "hola"};
Acceder a la información
Pasar por referencia?¿
Funciones dentro de las estructuras
- Aplicable a C++.
- Son funciones que manipulan los datos de dentro de la estructura.
Constructor
- Los valores no iniciados con los constructores contendran "basura"
- Se pueden definir varios constructores
Forma 1:
struct Punto {
int x, y;
Punto() {x = 0; y = 0;} // Constructor
} Punto1, Punto2;
Forma 2:
struct Punto {
int x, y;
Punto(); // Declaración del constructor
} Punto1, Punto2;
// Definición del constructor, fuera de la estructura
Punto::Punto() {
x = 0;
y = 0;
}
Es una función sin retorno y con el mismo nombre que la estructura.
Destructor
- Es igual pero con el simbolo ~ delante.
Funciones
- Se pueden incluir otras funciones que se declaran y definen como las funciones normales.
struct stPareja {
int A, B;
int LeeA() { return A;} // Devuelve el valor de A
int LeeB() { return B;} // Devuelve el valor de B
void GuardaA(int n) { A = n;} // Asigna un nuevo valor a A
void GuardaB(int n) { B = n;} // Asigna un nuevo valor a B
} Par;
int main() {
Par.GuardaA(15);
Par.GuardaB(63);
cout << Par.LeeA() << endl;
cout << Par.LeeB() << endl;
return 0;
}
Documentación
Curso de C++ con clase
Curso de C - El Rincón de C
Punteros
typedf -> cambia nombre del tipo a otro nombre personalizado. Ej. typedef strcut contacto contacto_t; //Ahora escribiendo contacto_t estoy escribiendo en realidad struct contacto.