0% encontró este documento útil (0 votos)
40 vistas21 páginas

POO en C

ll

Cargado por

NYCTER
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
40 vistas21 páginas

POO en C

ll

Cargado por

NYCTER
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación II POO en C++ | Introducción

Programación Orientada a Objetos (POO)

• Descompone un problema en subgrupos


• Cada subgrupo es un objeto autocontenido (datos y
acciones sobre los datos)
• Encapsulamiento, Polimorfismo y Herencia

Basado en:
• Petit, J., Roura, S. y Atserias, A. Anàlisi i Disseny d’Algorismes (ADA). FIB-UPC. 2005.
• Schildt, H. C++ Guía de autoenseñanza. Osborne McGraw-Hill. 1995. Liliana Félix
Programación II POO en C++ | Introducción

C++

• Es un lenguaje orientado a objetos


• Es un superconjunto de C

Liliana Félix
Programación II POO en C++ | Introducción

C++

• La E/S por consola se realiza incluyendo el archivo de


cabecera iostream y utilizando operadores
Entrada Salida

Operador >> <<


Sintaxis cin>>variable; cout<<expresion;

No requiere indicar el tipo


de dato a manipular

Liliana Félix
Programación II POO en C++ | Introducción

C++

• Un namespace es un entorno para identificadores


• Los identificadores de la librería estándar están definidos en
un namespace llamado std
• Usos std::cout << “Hola Mundo” << std::endl;

using std::cout;
using std::endl;

cout << “Hola Mundo” << endl;

using namespace std;

cout << “Hola Mundo” << endl;

Liliana Félix
Programación II POO en C++ | Introducción

Clase

• Es un concepto extendido de una estructura (struct)


• Una clase contiene miembros y comportamiento
(métodos)
class CCuadrado {
double l; //lado
void lado(double);
double area();
};

Basado en:
• Stroustrup, B. The C++ Programming Language. Addison-Wesley. 1997.
• Schildt, H. C++ Guía de autoenseñanza. Osborne McGraw-Hill. 1995.
• Josuttis, N. M. The C++ Standard Library. A tutorial and reference. Addison-Wesley. 1999.
• C++ Language Tutorial at [Link] Liliana Félix
Programación II POO en C++ | Introducción

Objeto

• Es una instancia de una clase


• clase=tipo de dato class CCuadrado {
double l;
• objeto=variable
void lado(double);
double area();
int main () {
};
CCuadrado c;

return 0;
}

Liliana Félix
Programación II POO en C++ | Introducción

Encapsulamiento

• Modifican los derechos de acceso a los miembros


accesible sólo desde dentro de otros miembros de la
• private
misma clase

accesible desde los miembros de su misma clase y


• protected también de los miembros de sus clases derivadas

accesible desde cualquier lugar donde el objeto es


• public visible

• Todos los miembros de una clase tienen, por omisión,


acceso private

Liliana Félix
Programación II POO en C++ | Introducción

Encapsulamiento

class CCuadrado {
private: accesible sólo desde dentro de otros
double l;
miembros de la misma clase
public:
void lado(double); public: accesible desde cualquier lugar
double area(); donde el objeto es visible
};

int main() {
CCuadrado c;

return 0; void lado(double);


} double area();

Liliana Félix
Programación II POO en C++ | Introducción

Encapsulamiento

class CCuadrado {
double l; miembro privado

public:
void lado(double);
double area(); miembros públicos
};

int main() {
CCuadrado c;

X
return 0; void lado(double);
} double area();
double l;

Liliana Félix
Programación II POO en C++ | Introducción

Encapsulamiento
int main() {
CCuadrado c;
#include <iostream>
[Link](3);
using namespace std; cout << "area: ";
cout << [Link]() << endl;
class CCuadrado { return 0;
double l; }
public:
void lado(double);
double area() {return (l*l);}
};

void CCuadrado::lado(double a) {
l = a;
return;
}

Liliana Félix
Programación II POO en C++ | Introducción

Encapsulamiento
int main() {
CCuadrado c;
#include <iostream>
[Link](3);
using namespace std; cout << "area: ";
acceso a miembros cout << [Link]() << endl;
class CCuadrado { return 0;
double lado; }
public:
void lado(double);
double area() {return (l*l);}
}; Función miembro inline

void CCuadrado::lado(double a) {
l = a;
return; Operador de entorno, especifica la
} clase a la que pertenece el miembro
que se define

Liliana Félix
Programación II POO en C++ | Introducción

Método

• Define el comportamiento de una clase


• Este comportamiento se lleva a cabo a través de mensajes

class CCuadrado {
double l; int main() {
public: CCuadrado c;
void lado(double);
double area() {return (l*l);} [Link](3);
}; cout << "area: ";
cout << [Link]() << endl;
void CCuadrado::lado(double a) { return 0;
l = a; }
return;
}

Liliana Félix
Programación II POO en C++ | Introducción

Método

• Define el comportamiento de una clase


• Este comportamiento se lleva a cabo a través de mensajes

class CCuadrado {
double lado; int main() {
public: CCuadrado c;
void lado(double);
double area() {return (l*l);} [Link](3);
}; cout << "area: ";
cout << [Link]() << endl;
void CCuadrado::lado(double a) { return 0;
l = a; }
return;
} Comportamiento

Liliana Félix
Programación II POO en C++ | Introducción

Método

• Define el comportamiento de una clase


• Este comportamiento se lleva a cabo a través de mensajes

class CCuadrado {
double lado; int main() {
public: CCuadrado c;
void lado(double);
double area() {return (l*l);} [Link](3);
}; cout << "area: ";
cout << [Link]() << endl;
void CCuadrado::lado(double a) { return 0;
l = a; } Mensaje
return;
}

Liliana Félix
Programación II POO en C++ | Introducción

Método

• Define el comportamiento de una clase


• Este comportamiento se lleva a cabo a través de mensajes

class CCuadrado {
double lado; int main() {
public: CCuadrado c;
void lado(double);
double area() {return (l*l);} [Link](3);
}; cout << "area: ";
cout << [Link]() << endl;
void CCuadrado::lado(double a) { return 0;
l = a; } Mensaje
return;
} Comportamiento

Liliana Félix
Programación II POO en C++ | Introducción

Constructores

• Previenen comportamientos inesperados


• Se asigna uno por omisión sin argumentos
• Se ejecutan automáticamente
• Pueden ser sobrecargados

Liliana Félix
Programación II POO en C++ | Introducción

Constructores

class CCuadrado { int main() {


double lado; CCuadrado c(5);
public:
CCuadrado(double); cout << "area: ";
cout << [Link]() << endl;
}; El constructor se nombra igual que return 0;
su clase y no tiene tipo asociado }
CCuadrado::CCuadrado(double a) {
l = a;
}

Liliana Félix
Programación II POO en C++ | Introducción

Constructores

class CCuadrado { int main() {


double lado; CCuadrado c(5);
public: Ejecución automática
CCuadrado(double); cout << "area: ";
double area() {return (l*l);} cout << [Link]() << endl;
}; return 0;
}
CCuadrado::CCuadrado(double a) {
l = a;
} Constructor

Liliana Félix
Programación II POO en C++ | Introducción

Sobrecarga de Constructores

• Cuando se define un constructor propio, queda inhabilitado


el constructor por omisión

class CCuadrado {
double lado;
public: int main() {
CCuadrado(double) {l = a;} CCuadrado c1(5);

CCuadrado c2;
};
return 0;
}

Liliana Félix
Programación II POO en C++ | Introducción

Sobrecarga de Constructores

• Cuando se define un constructor propio, queda inhabilitado


el constructor por omisión

class CCuadrado {
double lado;
public: int main() {
CCuadrado(double) {l = a;} CCuadrado c1(5);

CCuadrado() {l=0;} CCuadrado c2;


};
return 0;
}

Liliana Félix
Programación II POO en C++ | Introducción

Destructores

• Se ejecutan automáticamente cuando


• el ámbito de un objeto ha terminado
• un objeto asignado dinámicamente se ha liberado
utilizando el operador delete

Liliana Félix

También podría gustarte