Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROYECTOS EN C++
3
Construcción de un proyecto
Interfaz
Implementación
Implementación
int Par::por() {
return x*y;
}
void Par::verM() {
cout << x << " + " << y << " = " << mas();
}
void Par::verP() {
cout << x << " * " << y << " = " << por();
}
7
Uso
FUNCIONES
CONSTANTES
9
Métodos constantes
class Hora {
public:
Hora(int=0, int=0, int=0);
void AsignaHora(int);
void AsignaMin(int);
void AsignaSeg(int);
void MuestraHora() const;
void MuestraMin() const;
void MuestraSeg() const;
private:
int hh;
int mm;
int ss;
};
11
OBJETOS
CONSTANTES
14
Objetos constantes
int main() {
const Hora x(12,3,10);
x.AsignaHora(9); Error
x.AsignaMin(34); Intento de modificar objeto constante
x.AsignaSeg(22);
Hora y;
y.AsignaHora(5);
y.AsignaMin(3);
y.AsignaSeg(16);
return 0;
}
16
CONSTRUCTORES
17
Constructores
Constructores
Puede sobrecargarse
Invocación implícita
Fraccion f;
Fraccion f(3, 7);
Invocación explícita
Fraccion g = Fraccion();
Fraccion h = Fraccion(4, 9);
19
Constructores
Viola el principio de
Fraccion f; encapsulamiento
f.num=6;
Fraccion f(5,3);
Fraccion f= Fraccion(5,3);
Fraccion *f=new Fraccion;
Fraccion *g;
g=new Fraccion(2,5);
20
Constructores
Fraccion::Fraccion(int x,int y) {
SetNum(x);
SetDen(y);
}
Fracción::Fraccion(int x,int y) {
num=x;
den=y;
}
21
Inicializadores
Atributos constantes
Uso de
Inicializador
cuya forma es
atributo(valor)
23
class Incremento {
public:
Incremento(int c=0, int k=1);
void Increm();
void Decrem();
void Listar() const;
private:
int cont;
const int inc;
};
24
int main() {
Incremento x(1, 5);
int i;
x.Listar();
for (i=1;i<=6;i++)
x.Increm();
cout<< "Después de " << i << " incrementos: ";
x.Listar();
x.Decrem();
x.Listar();
return 0;
}
26
Tipos de constructores
Por Defecto
Con Argumentos
De Copia
27
Constructor de Oficio
Existe por omisión
Lo incorpora automáticamente el compilador, si
el usuario No define ningún constructor
Inicializa los atributos según los valores por
omisión establecidos por el lenguaje
29
class Fraccion {
private:
int num;
int den;
public:
Fraccion();
…
};
30
Implementación
Fraccion::Fraccion() {
num=0;
den=1;
}
Composición
Fraccion V[100];
31
Declaraciones permitidas:
Fraccion f;
Fraccion g(3);
Fraccion h(2, 5);
32
Prototipos
Fraccion(int x)
Fraccion(int x, int y=1)
Declaraciones permitidas
int a=3, b=6, c=9;
Fraccion g(a);
Fraccion h(b, c);
33
Constructor de Copia
Constructor de Copia
Fraccion f1(f2);
35
Constructor de Copia
Alumno a1;
Alumno a2;
class Alumno {
private:
char *nom; *nom:
int mat; mat: 12345
float prom; prom:4.7
... "Serapio Jento"
}
*nom:
mat: 12345
prom:4.7
36
DESTRUCTORES
37
Destructor
~Clase ()
38
Destructor
Clase::~Clase () {
delete [] v;
}
39
Interfaz
class Alumno {
private:
char *nom;
int matr;
double prom;
public:
Alumno();
Alumno(char *, int);
void Listar();
~Alumno();
};
40
Implementación
Uso
int main() {
Alumno a("Juan");
Alumno b("María", 1234);
a.Listar();
b.Listar();
return 0;
}