Está en la página 1de 15

Introduccin POO con C++

Ing. Ronald Melndez.

Qu es C++
y C++ es un lenguaje de programacin orientado a objetos

que toma la base del lenguaje C y le agrega la capacidad de abstraccin. y C++ es un lenguaje de programacin diseado a mediados de los aos 1980 por Bjarne Stroustrup. y Para programar C++ se necesita un compilador, en nuestro caso utilizaremos DevC++.

Ing. Ronald Melndez.

Estructura bsica de un programa


#include <iostream> using namespace std; int main() { cout << "Hola Mundo" << endl; return 0; }

Ing. Ronald Melndez.

Tipos de datos
Los tipos de datos mas comunes son: y void y char y int y float y double C++ incorpora dos tipos de datos importante. y string y bool
4 Ing. Ronald Melndez.

#include <iostream.h> #include <stdlib.h> void main() /* Este programa te dice el mayor de 10 nmeros */ { int n,a,nmay; a=0; n=0; nmay=0; for (a=1; a!=11; a++) { cout<<"Introduce un numero ("<<a<<"): "; cin>>n; if (a==1) nmay=n; //S es la primer vuelta, entonces por default, el primer numero se considera como el mayor if (n>nmay) nmay=n; } cout<<"El numero mayor es: "<<nmay<<endl; system("PAUSE"); }

Ing. Ronald Melndez.

Programacin orientada a objetos


y Es una forma de programar que usa objetos que responden a

sucesos. y Se produce un flujo de mensajes entre los objetos. y Se producen cambios en el estado de un objeto. y Ejemplo:
Datos Miembros Titulo Autor Precio Funciones Miembros LeerDatos() ImprimirDatos() Libro.LeerDatos() //envio de mensaje
6 Ing. Ronald Melndez.

Mecanismos bsicos de la POO


y Objeto: contiene datos y procedimientos (funciones) para y y y

manipularlo. Mensaje: es el llamado a un mtodo para modificar el estado del objeto. Mtodo: es la implementacin de la funcin de una clase. Clase: Describe los mtodos y atributos que definen las caractersticas comunes a todos los objetos de esa clase. Subclase: es una clase que hereda los mtodos y atributos de una clase padre.

Ing. Ronald Melndez.

Importancia de la POO
y Uniformidad.Ya que la representacin de los objetos lleva implica tanto el anlisis y

como el diseo y la codificacin de los mismos. Comprensin. Tanto los datos que componen los objetos, como los procedimientos que los manipulan, estn agrupados en clases, que se corresponden con las estructuras de informacin que el programa trata. Flexibilidad. Al tener relacionados los procedimientos que manipulan los datos con los datos a tratar, cualquier cambio que se realice sobre ellos quedar reflejado automticamente en cualquier lugar donde estos datos aparezcan. Estabilidad. Dado que permite un tratamiento diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con frecuencia permite aislar las partes del programa que permanecen inalterables en el tiempo. Reusabilidad. La nocin de objeto permite que programas que traten las mismas estructuras de informacin reutilicen las definiciones de objetos empleadas en otros programas e incluso los procedimientos que los manipulan. De esta forma, el desarrollo de un programa puede llegar a ser una simple combinacin de objetos ya definidos donde estos estn relacionados de una manera particular.

Ing. Ronald Melndez.

Clases
C++ utiliza especificadores de acceso para permitir controlar a una clase el acceso a las variables de datos de esa clase.
y public: permite el acceso tanto fuera como dentro de la clase. y protected: son nicamente accesibles por funciones miembro

de la clase, pero no se pueden acceder a ellos desde otras clases.


y Private: es inaccesible no slo desde otras clases y otras partes

del programa, sino tambin desde sus clases derivadas.

Ing. Ronald Melndez.

Miremos el siguiente programa de ejemplo. Se compone de tres partes: la primera una declaracin de una clase llamada Empleado: class Empleado { private: char* m_nombre; char* m_departamento; char* m_posicion; long m_salario; public: void ImprimirInfo(); void SetNombre( char* nombre ) { m_nombre = nombre } void SetDepartamento( char * departamento) { m_departamento = departamento } void SetPosicion ( char* posicion ) { m_posicion = posicion } void SetSalario ( long salario ) { m_salario = salario } const char* GetNombre( ){ return m_nombre } const char* GetDepartamento( ){ return m_departamento } const char* GetPosicion( ){ return m_posicion } const char* GetSalario( ){ return m_salario } };
10 Ing. Ronald Melndez.

La definicin de la funcin PrintInfo puede quedar as: void Empleado::ImprimirInfo( ) { cout << "Nombre: " << m_nombre << '\n'; cout << "Departamento: " << m_departamento << '\n'; cout << "Puesto: " << m_posicion << '\n'; cout << "Salario: " << m_salario << '\n'; } La tercera parte es la funcin main. Veamos como podra ser: void main() { //creacion de un objeto de la clase Empleado Empleado empleado12; //asignacion de valores a las variables miembro empleado12.SetNombre("Jose"); empleado12.SetDepartamento("Sistemas"); empleado12.SetPosicion("Programador"); empleado12.SetSalario(3000000); //impresion de los datos empleado12.ImprimirInfo();

}
11

Ing. Ronald Melndez.

Clases continuacin
Las definiciones de los mtodos de una clase se hacen fuera de la clase utilizando el operador de mbito :: y Si tenemos un mtodo void setNombre(string) dentro de la clase profesor, la definicin sera fuera de la clase misma. y Sintaxis: class Profesor { private: string nombre; public: void setNombre(string); }; //definicin void Profesor::setNombre(string nombre){ this->nombre=nombre; }
y

12

Ing. Ronald Melndez.

Observemos un ejemplo que implementa los mtodos de la clase Profesor: #include <iostream> #include <stdlib.h> #include <string.h> using namespace std; class Profesor{ int id; string nombre; public: Profesor(); ~Profesor(); //sets y gets void setId(int ); void setNombre(string ); void setDireccion(string ); void setTelefono(string ); string getTelefono(); };
13 Ing. Ronald Melndez.

string direccion;

string telefono;

int getId(); string getNombre(); string getDireccion();

//definiciones de los metodos void Profesor::setId(int id){ this->id=id; } int Profesor::getId(){ return id; } void Profesor::setNombre(string nombre){ this->nombre=nombre;} string Profesor::getNombre(){ return nombre;} void Profesor::setDireccion(string direccion){ this->direccion=direccion;} string Profesor::getDireccion(){ return direccion;} void Profesor::setTelefono(string telefono){ this->telefono=telefono;} string Profesor::getTelefono(){ return telefono; }
14 Ing. Ronald Melndez.

int main(int argc, char *argv[]) { string nom; int id; string dir; string tel;

Profesor pro; //introducir datos pro.setNombre("Ronald Melendez"); pro.setDireccion("Chinandega"); pro.setTelefono("89748922"); pro.setId(10);

//obtener datos nom=pro.getNombre(); dir=pro.getDireccion(); tel=pro.getTelefono(); id=pro.getId();

//Salidas de datos cout<<"Hola profesor, su nombre es: "<<nom<<\nSu direccion es: "<<dir<<"\n"; cout<<"Su telefono es: "<<tel<<\nSu edad ID es: "<<id<<"\n"<<endl; system("PAUSE"); return 0; }

15

Ing. Ronald Melndez.

También podría gustarte