Академический Документы
Профессиональный Документы
Культура Документы
Cuando se declara una variable, el compilador reserva un espacio de memoria para ella y asocia el
nombre de ´está a la dirección de memoria desde donde comienzan los datos de esa variable. Las
direcciones de memoria se suelen describir como números en hexadecimal. Un apuntador es una
variable cuyo valor es la dirección de memoria de otra variable. Se dice que un apuntador
“apunta” a la variable cuyo valor se almacena a partir de la dirección de memoria que contiene el
apuntador. Por ejemplo, si un apuntador p almacena la dirección de una variable x, se dice que “p
apunta a x”.
Referenciación
La referenciación es la obtención de la dirección de una variable. En C y C++ esto se hace a través
del operador ‘&’, aplicado a la variable a la cual se desea saber su dirección. Nótese que se trata
de un operador unario
Declaración de apuntadores
Complemento a Uno
Complemento a dos
Matrices
Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de
declarar una matriz es C++ es similar a un vector:
int matrix[rows][cols];
int es el tipo de dato, matrix es el nombre del todo el conjunto de datos y debo de especificar el
numero de filas y columnas.
Las matrices también pueden ser de distintos tipos de datos como char, float, double, etc. Las
matrices en C++ se almacenan al igual que los vectores en posiciones consecutivas de memoria.
Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo
es como su definición lo indica, un vector de vectores, es decir, los vectores están uno detrás del
otro juntos.
Si coloco int matriz[2][3] = 10; estoy asignando al cuarto elemento de la tercera fila el valor 10.
No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y para recorrer una
matriz podemos usar igualmente un bucle. En este caso usando 2 for:
Si declaramos un puntero int *pm y luego igualamos pm = m, p ahora puede desplazarse por los
valores de m. *p; // contenido de m[0], el cual apunta al primer elemento de ese vector, es decir,
m[0][0]
Matrices Dinámicas
Para crear una matriz dinámica debemos de crear un doble puntero int **pm y samos al igual que
los vectores el operador new para reservar memoria y delete para liberar. Primero tenemos que
crear el vector que contendrá a otros vectores especificando el número de vectores que tendrá
este vector principal. Ejem:
Clases Anidadas
El identificador de una clase anidada está sujeto a las mismas reglas de acceso que los restantes
miembros. Si una clase anidada se declara en la sección private de la clase circundante, la clase
anidada será utilizable sólo por los miembros datos de la clase que la circunde. La clase que
encierra puede acceder al nombre de la clase anidada sin resolución de ámbito. Si un nombre de
una clase anidada es accesible a una clase o función que no la circunda, se debe aplicar el
operador ::.
class externa
{ public:
class interna {
public:int x; };
};
void main() {
externa::interna valor;
int v=valor.x;
}
Clases Amigas
Herencia de Clases
La herencia facilita la creación de objetos a partir de otros ya existentes e implica que una subclase
obtiene todo el comportamiento (métodos) y eventualmente los atributos (variables) de su
superclase.
Es la relación entre una clase general y otra clase más específica. Por ejemplo: Si declaramos una
clase párrafo derivada de una clase texto, todos los métodos y variables asociadas con la clase
texto, son automáticamente heredados por la subclase párrafo.