Sei sulla pagina 1di 7

1.

3 Las funciones en C++


1. Definicin de las funciones TipoDeFuncion NombreDeFuncion(lista de parmetros) TipoDeFuncion: El tipo del valor que la funcin va a retornar si hay La lista de parmetros: DeclaracionDeParametro, ..., DeclaracionDeParametro Cada Declaracin de parmetros: TipoParametro NombreParametro Ejemplos: int PedirY(); float AreaCirculo(float Radio); bool EsVocal(char CaracterActual);

2. Los preprocesadores Incluyen: Directivos de inclusin de ficheros y directivos de compilacin condicional Unidad de translacin: el fichero resultado del pre-procesador 2.1 Directivos de inclusin de ficheros Especificar el nombre de un fichero que forma parte de la unidad de translacin y substituye el directivo mismo. Dos formas: #include <NombreDeFichero> // para los en directorios estndar del sistema #include NombreDeFichero // Significa que el sistema tiene que buscar // puede ser una ruta absoluta o relativa // por defecto es la carpeta actual

2.2 Directivos de compilacin condicional Incluyen #ifndef (si no se ha definido) y #ifdef (si se ha definido) #ifndef ALGO #ifdef ALGO la seccin. #endif #endif Para decidir si compilar o no compilar la seccin. Ejemplo: Garantizar la definicin de a, b solamente ocurrir una vez. #ifndef NO_MAS_A_Y_B int a; int b; #define NO_MAS_A_Y_B #endif

3. Las libreras de software Los espacios de nombres globales : .h Ejemplos: #include <math.h> #include rect.h Los espacios de nombres no globales

Qu se puede utilizar durante todo el fichero de programa No hace falta de utilizar using namespace

Sin ninguna extensin Hay que poner su espacio de nombres donde se define

Ejemplo: #include <iostream> using namespace std; cout << Hello world << endl; // la primera manera O en este formato: #include <iostream> std::cout << Hello world << endl; // la segunda manera

Las definiciones de funciones


Normalmente no estn en los ficheros de cabecera Suelen estn en los ficheros de objetos .obj Se hace la compilacin ms rpido: no hace la traslacin de libreras

La librera assert
Dispone un preprocesador macro assert assert usa una expresin como su parmetro Cuando se utiliza, comprueba su parmetro si tiene el valor cero. Si no es cero, el programa continua normalmente Si es cero, enva un mensaje y termina la ejecucin Ejemplo: #include <assert.h> assert(Denominator); Si Denominator es cero: sale el error: Assertion failed: Denomiator, file my.cpp line 12

4. Sobrecarga de funciones Sobrecarga de los operadores: el significativo de los operadores depende de los tipos de sus operandos ejemplo: el operador + : depende que est sumando. Sobrecarga de las funciones: se puede crear ms que una funcin con mismo nombre que comportan diferentemente ejemplo: una funcin Swap() // la versin de entero void Swap(int &x, int &y) { int tmp = x;

x = y; y = tmp; return; } // la versin de double void Swap(double &x, double &y) { double tmp = x; x = y; y = tmp; return; } Ejemplo: double w = 1.2, z = 3.4; Swap(w, z); La resolucin de funciones sobrecargadas : decide cul de las versiones va a ejecutar.

1.4 Las clases y la programacin orientada a objetos:


El concepto clase es ms importante para realizar la programacin orientada a objetos Los usuarios pueden definir nuevos tipos de objetos para encapsular ambos atributos y comportamientos de objetos 1. La construccin de las clases: la declaracin de clases

Un ejemplo class RectangleShape { public: RectangleShape(SimpleWindow &Window, float Xcoord, float Ycoord, const color &Color, float Width, float Height); void Draw(); color GetColor() const; void GetSize(float &Width, float &Height) const; float GetWidth() const; float GetHeight() const; void GetPosition(float &Xcoord, float &Ycoord) const; void SetSize(float Width, float Height); private: SimpleWindow &Window; float Xcenter; float Ycenter; color Color; float width; float Height; };

class NombreDeClase { public: // Aqu se colocan los prototipos para los constructores // miembros de atributos pblicos de datos // miembros de las funciones pblicas private: // Aqu se colocan los miembros de las funciones privados // miembros de atributos privados de datos de la clase }; La parte privada (private) Es la parte que no se puede tocar por las funciones fuera de la clase para esconder la informacin interna Cada declaracin corresponde a cada atributo del objeto SimpleWindow &window; declara un subobjeto que contiene la referencia de SimpleWindow que va a dibujar el objeto RectangleShape si se lo declara. Se utiliza referencia para no instanciar cada vez. Otros atributos: sub-objetos para contener el centro del rectngulo, su color, su ancho y altura.

La parte pblica (public)

Es la parte interfaz de la clase que se puede acceder por las funciones fuera de la clase para usar la clase El constructor: es una funcin de la clase que se convoca automticamente cuando un objeto de la clase se define Tiene el mismo nombre de la clase Puede iniciar una parte o todos los valores de los miembros

El constructor de la clase RectangleShape: RectangleShape(SimpleWindow &Window, float Xcoord, float Ycoord, const color &Color, float Width, float Height); Inspectores: las funciones que retornan atributos de los objetos de la clase Mutadores: Las funciones que pueden modificar los atributos de una clase Facilitadores: las acciones o servicios que el objeto de la clase puede facilitar.

void Draw();

La declaracin const: Para definir que la funcin no puede cambiar el objeto

color GetColor() const; 2. El uso de las clases El concepto de instanciacin: Declarar un objeto de una clase despus de su construccin.
RectangleShape R(W, 4.0, 4.0, Blue, 2.0, 3.0); // Declara y crea un objeto RectangleShape e inicia lo. RectangleShape R(W); // declara un rectngulo por valores defectos

El acceso de la clase:
Parte privada: solamente los miembros las funciones de la clase Parte pblica: no hay que ser miembros de la clase. Para enviar mensajes a los objetos de una clase Se acceder con "." R.draw() R.SetColor(Cyan); R.SetSize(1.0, 2.0);

3. Ejemplos de uso de una clase


#include "rect.h" SimpleWindow W("Dos Cuadrados", 8, 8); // si incluimos rect.h, ya podemos utilizar la clase. int ApiMain() { W.Open(); RectangleShape B(W, 4, 4, blue, 1, 1); B.Draw(); // crear y dibujar otro rectngulo para que se tocan uno a otro RectangleShape M(W, 2.5, 2.5, Magenta, 2, 2); M.Draw(); return 0; }

4. La definicin de las funciones de miembros El uso del operador :: (de mbito) Para referir la relacin de la clase y sus miembros fuera de la parte de declaracin de la clase float RectangleShape::GetWidth() const { return Width; } Las funciones de los miembros suelen definirse fuera de la declaracin de la clase

Potrebbero piacerti anche