Definición
Son declaraciones que además le otorgan un valor a la variable.
No se pueden repetir.
class Persona {
string nombre;
string apellido;
};
int x = 5;
bool foo(int x) {
return x == 10;
}
// acá y ya está tomando un valor
int y;
Declaración
Asocian un nombre a un tipo.
Se pueden repetir
class Persona;
bool foo(int x);
extern int y;
{...}
.::
.namespace NS {
int ns1 = 1;
int ns2 = ns1 + 1;
}
int global1 = 2;
int global2 = NS::ns2;
Para relacionar módulos de TADs con clases de C++ escribiremos una interfaz (pero eso lo vamos a ver más adelante).
Clases como abstracciones y variables concretas como instancias.
Para representar estas diferencias tenemos que definir una representación interna.
La representación es un conjunto de variables que componen la instancia y cuyo estado la definen. Sobre estas variables se ejecutan las operaciones y mantenemos información del módulo en el tiempo.
class Truco {
public:
uint puntaje_j1();
uint puntaje_j2();
Truco();
void sumar_punto(uint);
bool buenas(uint);
// Definimos las variables de representación interna como privadas
// No son parte de la interfaz
private:
int puntaje_j1_;
int puntaje_j2_;
}
¿Cómo definimos comportamiento genérico para las instancias?
void Truco::sumar_punto(uint j) {
if (j == 1 {
this -> puntaje_j1_++;
} else {
this -> puntaje_j2_++;
}
};
Keyword this
: