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:
- o nome da função;
- seus parâmetros;
- o tipo de dado que esta função retorna, se for o caso.
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.