PUCRS
Programação de Software Básico
Faculdade de Informática


Criação de Bibliotecas


Para a criação de uma biblioteca é necessário criar um arquivo de cabeçalho (também chamado de header) para colocar os protótipos das funções da biblioteca. Os protótipos definem:

Por exemplo, se houver uma biblioteca que define um tipo PONTO e que possui uma função de cálculo da distância entre dois pontos, então este arquivo de cabeçalho pode ser da seguinte forma:

// ****************
// Ponto.h
//
// ****************

typedef struct  {
   double x, y;    
} PONTO;

double CalculaDistancia (PONTO A, PONTO B);


A implentação das funções da biblioteca propriamente dita, deve ser colocada em um arquivo separado, com a extensão .cpp. Este arquivo  deve incluir o arquivo de cabeçalho da biblioteca e pode ter o seguinte formato:

// ****************
//  Ponto.cpp
//
// ****************

#include "Ponto.h" // inclui o cabeçalho da biblioteca

double CalculaDistancia (PONTO A, PONTO B)
{
       ...........
}

PONTO CriaPonto (double X, double y)
{
     ...............
}


Posteriormente, este arquivo deve ser compilado junto com o programa-fonte que utilizará a biblioteca.

Para efeito de exemplo, considere que este  programa-fonte se chama
TestePonto.cpp. Este programa, deve incluir o arquivo de cabeçalho da biblioteca, através do comando

#include "Ponto.h"

No caso de utilizar-se o DEVCPP, o arquivo Ponto.cpp deve ser colocado no projeto do programa que está sendo construído. A tela do DEVCPP deverá parecer-se com a imagem abaixo.



No caso de se utilizar o g++, a sintaxe do comando é a seguinte:

g++ Ponto.cpp TestePonto.cpp -o TestePonto.exe


Atenção:

Utilizando o GCC/G++ ou DEVCPP,  para criar funções dentro de structs é necessário que a definição da mesma seja feita da seguinte forma:

// ****************
// Ponto.h
//
// ****************

typedef struct PONTO { // Note que o nome da struct deve
   double x, y;            // aparecer ao lado da palavra
   void imprime();         // 'struct' !!!
} PONTO;


No Visual C/Visual Studio, isto não é necessário.





Exercício
Crie uma biblioteca que defina uma LINHA. Esta biblioteca deve usar a biblioteca Ponto. Crie funções para manipular a esturutra de uma linha.
Crie uma
biblioteca que defina um TRIÂNGULO. Esta biblioteca deve usar a biblioteca Ponto. Crie funções para manipular a esturutra de um triângulo.
Crie uma biblioteca que defina um CÍRCULO. Esta biblioteca deve usar a biblioteca Ponto. Crie funções para manipular a estrutura de um círculo.
Crie um program principal que utilize as 3 estruturas criadas.




FIM.