Página seguinte Página anterior Índice geral

### 10. O Navegador de Classes

### 10.1 O Visualizador de Classes

O Visualizador de Classes do KDevelop é uma das ferramentas mais importantes e úteis que o ambiente de desenvolvimento disponibiliza ao programador para gerir o código do seu projecto. Quando um projecto é aberto, um analisador de sintaxe de classes lê todo o código do projecto procurando funções, classes etc., apresentando depois os resultados na árvore de vista VC. Este capítulo mostra-lhe como utilizar o Visualizador de Classes e a funcionalidade disponibilizada e como isso pode melhorar o seu trabalho.

As Classes e os seus métodos também são acessíveis através das caixas de selecção da barra de ferramentas do navegador. Aí, a caixa esquerda selecciona a classe; a direita permite-lhe escolher os métodos da classe seleccionada. Quando selecciona um método, o navegador de classes mostra automaticamente o ficheiro de implementação e coloca o cursor no método. Finalmente, o botão de assistente de classes à direita da caixa de selecção irá mostrar-lhe, quando premido, a declaração do método. O menu de escolha, disponibilizado pela seta para baixo no botão, permite funcionalidades adicionais também disponíveis no navegador de classes, tais como:

- Ver Declaração: navega para a declaração do método
- Ver Definição: navega para a definição do método
- Nova Classe: abre o diálogo de Nova Classe para construir uma classe nova
- Adicionar Método: adiciona um método à classe seleccionada
- Adicionar Atributo: adiciona um atributo à classe seleccionada

#### Objectos Disponíveis

Por objectos disponíveis, descrevemos um termo que significa que o código C++ pode ser visto como uma colecção de objectos- classes, seus membros, funções globais e afins. A árvore de classes apresenta estes objectos logicamente e ordena-os por caracter, pelo que são fáceis de localizar na árvore bem como pelo seu icon correspondente. Assim a árvore de classes contém uma pasta "Classes" e uma "Globais". Por isso a pasta "Classes" geralmente contém as classes do projecto; se o seu projecto contém subdirectórios para gerir os ficheiros de código, estes também são apresentados pelo seu nme de directório original e contêm todas as classes que estão guardades nos ficheiros localizados no subdirectório.

Mais ainda, quando expandindo uma classe, a árvore de classes apresenta o conteudo da classe separando os métodos e atributos. Como estes podem ter atributos dos tipos público, privado e protegido, estes são também apresentados por icons modificados. Pode ver que uma classe apresentada no Navegador de Classes contém todos os objectos que estão presentes na declaração da classe.

Agora, classes são algo muito comum quando a programar em C++ e irão conter a maior parte do código. Mas as aplicações também contêm objectos que têm a apresentação de "Globais" para o programa. Estes seriam estruturas, funções etc. Especialmente a função `main()` aparece em todas as aplicações e necessita de a modificar de uma ou outra forma por vezes. Para aceder a estes objectos, o Visualizador de Classes disponibiliza a pasta "Globais", contendo subpastas para os seguintes tipos de objectos:

- Estruturas
- Funções
- Variáveis

Como os icons que apresentam estes itens são semelhantes aos utilizados no visualizador de classes, o seu significado é fácil de adivinhar e recordar pelo programador.

Finalmente, pode ser afirmado que o visualizador de classes apresenta o seu projecto graficamente através dos seus objectos relativamente à sua aparência para o código. Na secção seguinte irá aprender como utilizar o visualizador de classes e as suas ferramentas em conjunto com o seu código.

#### Navegar as Declarações e Implementações dos Objectos

A maior capacidade do Visualizador de Classes é disponibilizar uma boa forma de aceder rápidamente ao seu código independentemente da sua localização dentro dos ficheiros. Assim, selecções através de um clique do rato irão resultar nas seguintes acções:

- Num nome de classe: Vai para a declaração da classe
- Num método da classe: Vai para a implementação do método
- Num atributo da classe: Vai para a declaração do atributo na declaração da classe
- Numa estrutura: Vai para a declaração da estrutura
- Numa função global: Vai para a implementação da função

Agora, Isto permite-lhe o acesso mais necessário ao código dos objectos. Aparentemente, pode ser necessário modificar o cabeçalho de um método, resultando na necessidade de alterar a sua declaração na classe bem como a implementação. O visualizador de classes suporta isto disponibilizando menus de contexto acessíveis pelo botão direito do rato sobre os itens. Num método ou função, isto significa que pode seleccionar para onde quer ir:

- Ir para a definição: Vai para a implementação- este é o defeito para um clique do botão esquerdo como descrito acima
- Ir para a declaração: Vai para a declaração do método ou função.

Através deste comportamento, o Navegador de Classes oferece-lhe acesso a todo o lado que necessita ir para programar a sua aplicação em C++.

As seguintes secções dão-lhe uma descrição de outras ferramentas que o Navegador de Classes disponibiliza- irá acha-las muito úteis quando trabalhar com grandes projectos pois elas potenciam o trabalho orientado por objectos em programas C++.

### 10.2 As Ferramentas de Classes

As ferramentas de classes são diálogos que tornam ainda mais fácil ao programador obter mais informação sobre as classes do seu projecto. Como o visualizador de classes apresenta todos os objectos segundo a sua ocorrência no código, por vezes você pode querer mais informação sobre classes sem ter de olhar para o código. Assim, os diálogos das ferramentas de classes estão idealizadas para apresentar atributos específicos de classes.

O diálogo das ferramentas de classes é invocado pelo menu de contexto sobre uma classe no visualizador de classes. Seleccione "Ferramentas de Classes", e o diálogo surgirá. Para obter informação sobre uma classe, escolha a classe na lista de selecção no topo. Depois os botões na barra de ferramentas disponibilizam funções que lhe dão árvores específicas para a sua classe. Estas são:

Pais:

  Os pais da classe seleccionada, o que significa a classe donde herdou. Isto é útil para heranças múltiplas bem como para ver porque uma classe se comporta de uma ou de outra forma, por ex. para diálogos a sua classe Pai poderia ser QWidget ou QDialog.

Filhos:

  Apresenta as classes filhas que herdam da classe actual.

Clientes:

  Classes que fazem uso da classe seleccionada através de um atributo na sua declaração de classe.

Fornecedores:

  Os fornecedores que dão atributos para a classe seleccionada.

Atributos:

  Os atributos da classe pelo seu nome.

Métodos:

  Os Métodos da classe seleccionada.

Métodos Virtuais:

  Os métodos virtuais que uma classe disponibiliza.

Ainda mais, a selecção de um atributo publico, protegido, privado ou todos mostra Atributos, Métodos e Métodos Virtuais pelo seu valor de atributo.

### 10.3 Gerir Classes

O Navegador de Classes também permite adicionar métodos e atributos directamente através de diálogos. Isto significa que você não tem de escrever a declaração de classe e o cabeçalho de implementação. Depois de adicionar o método, apenas tem de definir os parâmetros formais para o cabeçalho de implementação e, se o método requer um atributo, para a declaração.

» Como adicionar um método a uma classe

1. seleccione a classe a que deseja adicionar o método
2. prima o botão direito do rato; surge o menu de contexto
3. seleccione "Adicionar função membro".
4. o diálogo "Adicionar função membro" surge.
5. inserir o tipo, declaração e documentação para o método
6. especificar o acesso e modificadores do método
7. premir OK para sair do diálogo

Para adicionar uma variável, esta é a mesma forma, apenas tendo de seleccionar "Adicionar variável membro" no menu de contexto.

A diferença entre as acções destes diálogos são que adicionar uma variável apenas irá adicionar uma variável à declaração da classe, e a adição de um método irá adicionar a declaração do método e o cabeçalho de implementação do mesmo ao código. Como o visualizador de classes se actualiza automaticamente por si só, você tem acesso ao novo método implementado, para que só tenha de escrever o código para o verdadeiro objectivo do método.

Página seguinte Página anterior Índice geral