Você está na página 1de 16

apêndice H

Glossário

abstract base class (classe-base abstrata). Classe que contém uma ou mais funções virtuais puras das quais outras
classes são derivadas por herança.

abstract class (classe abstrata). Classe abstrata atua como um molde para outras classes. Normalmente é utilizada
como a raiz de uma hierarquia de classes.

abstract type (tipo abstrato). Tipo específico de tipo-base projetado para ser utilizado estritamente como base
para outros tipos. Não tem instâncias e, conseqüentemente, pode ser utilizado apenas para derivar novos
tipos.

abstraction (abstração). Característica essencial de um objeto que o diferencia de outros objetos.

access specifer (especificador de acesso). Palavra reservada que controla o acesso a membros dado e métodos den-
tro de tipos definidos pelo usuário.

Actor (ator). Linguagem orientada a objetos.

address (endereço). Valor que especifica a posição de uma variável na memória.

aggregation relationship (relação de agregação). A relação tem-um (has-a), inteiro-parte, entre classes.

algorithm (algoritmo). Especificação ou método não ambíguo, executável e com terminação que serve para resol-
ver um problema passo a passo.

anonymous union (união anônima). União enumerada em C++. Todos os membros da união compartilham o mes-
mo armazenamento e são utilizados tal como variáveis ordinárias.

Ansi (American National Standards Institute — Instituto Nacional Americano de Padronização). Comitê que apro-
va padrões de informática. O comitê Ansi se dedica à padronização de C++.

ANSI/ISO C++ Padrão O padrão da linguagem C++ que foi desenvolvido por Ansi (American National Standards
Institute) e ISO (International Standards Organization).

1
2   Programação em C++: Algoritmos, estruturas de dados e objetos

argument (argumento). Valor de um parâmetro em uma chamada a uma função ou um dos valores combinados por um
operador.

array (array, matriz). Coleção de valores do mesmo tipo, onde cada um dos quais se acessa por um índice inteiro.
Grupo de tipos de dados ou elementos idênticos.

arrow operator (operador de seta). O operador –>. p –> m é igual a (*p).m.

ASCII code (código ASCII). Código norte-americano padrão para intercâmbio de informação (American Standard
Code for Information Interchange), que associa valores de código entre 0 e 127 a letras, dígitos, sinais de pon­
tuação e caracteres de controle.

assertion (asserção). Afirmação ou declaração que certa condição contém em uma posição específica do programa; se
comprova, normalmente, com a macro assert.

assignment (atribuição). Posicionar, atribuir ou armazenar um novo valor em uma variável.

automatic variable (variável automática). Variável local que perde seu valor quando termina o bloco no qual está
definida.

balanced tree (árvore balanceada). Árvore na qual cada uma das subárvores tem a propriedade de possuir o número
de descendentes da esquerda aproximadamente igual ao número de descendentes da direita.

base class (classe-base) (C++). Classe da qual se deriva outra. Sinônimo de ancestor type e superclas.

behavior (comportamento, conduta). Sinônimo de um método declarado dentro de um tipo.

big-Oh notation (notação O grande). A notação g(n) = O(f(n)) demonstra que a função g e a função f crescem na
mesma velocidade com relação a n. Por exemplo, 10n2 + 100n – 1000 = O(n2).

binary file (arquivo binário). Arquivo cujos valores são armazenados em sua representação binária e não pode ser lido
como texto.

binary operator (operador binário). Operador que aceita dois argumentos, por exemplo, + (x+y).

binary search (busca binária). Algoritmo rápido e eficiente para encontrar um valor em um array ordenado. Reduz a
busca para a metade do tamanho de cada array em cada etapa do algoritmo.

binary search tree (árvore binária de busca). Uma árvore binária na qual cada subárvore tem como propriedade o fato
de que todos os seus descendentes são menores que o valor armazenado na raiz e todos os descendentes direitos
são maiores.

binary tree (árvore binária). Árvore na qual cada nó tem no máximo dois nós filhos.

binding (ligação). Processo pelo qual um nome ou uma expressão se associa a um atributo, tal como uma variável e o
tipo de valor que a variável pode conter.

binding time (tempo de ligação). Momento ou tempo no qual acontece uma ligação. Ligação adiantada ou estática
(early binding) geralmente se refere à ligação realizada em tempo de compilação, enquanto a ligação dinâmica ou
tardia (late ou dynamic binding) corresponde à ligação realizada em tempo de execução.

bit (bit). Dígito binário; a menor unidade de informação que tem dois valores possíveis, 0 e 1. Elemento dado que
consta de n bits tem 2n valores possíveis.

black box testing (prova da caixa-preta). Prova de funções sem conhecimento de sua implementação.
Glossário    3

block. Grupo de sentenças fechadas entre chaves {}.

boolean operator Ver logical operator.

boolean type. Tipo de dado que tem somente dois valores, true (verdadeiro) e false (falso).

bounds error (erro de limites). Tentativa de acessar um elemento de um array que está fora do intervalo legal (válido).

break statement (sentença break). Sentença que termina imediatamente um laço ou sentença switch.

breakpoint (ponto de ruptura). Ponto ou posição de um programa, especificado em um depurador, no qual a execução
do programa é detida e é permitido ao usuário inspecionar o estado do programa.

browser (navegador). Ferramenta de software que simplifica o exame do código associado a um sistema software. É
uma ferramenta utilizada para examinar as classes já definidas como parte da hierarquia de classes, isto é, inspecio-
nar hierarquias de classes.

buffered input (entrada por buffer). Entrada que se reúne em lotes (batches), por exemplo, uma linha cada vez.

built in type (tipo integrado). Tipo (tal como double ou char) incluído em uma linguagem. O compilador sabe como
manipulá-lo e não tem de aprender a cada momento, se encontra uma instância.

byte. Número entre 0 e 255 (oito bits). Normalmente, todos os computadores fabricados na atualidade utilizam um byte
como a menor unidade de armazenamento em memória.

C++. Linguagem popular de OO; parte da linguagem C.

call by reference (chamada por referência). Mecanismo de chamada a uma função que passa argumentos a uma função
pela passagem do endereço de cada argumento, em vez do seu valor.

call by value (chamada por valor). Mecanismo de chamada a uma função que passa argumentos pela passagem de uma
cópia de cada valor do argumento.

call stack (pilha de chamadas). Conjunto de funções que foram realmente chamadas, mas que não foram terminadas
começando com a função atual e terminando com main.

case-sentitive (sensível a maiúsculas). Diferença ou distinção entre letras maiúsculas e minúsculas. Esse conceito é
importante para os editores e compiladores de linguagem, pois permite diferenciar entre identificadores, tais como
Palavra, palavra, PALAVRA.

cast (conversão de tipos, moldar). Conversão de um valor de um tipo a um tipo diferente. Por exemplo, a conversão de
um número com ponto flutuante x em um inteiro se expressa em C++ pela notação de moldado, (int)x.

cfront Tradutor de AT&T C++.

character (caractere). Elemento básico utilizado por um computador tal como *, /, ¿, A, B, C, a, b, c, ...

child class (classe filha). Classe definida como uma extensão de outra classe denominada classe pai. Sinônimo de
subclasse (subclass) e classe derivada (derived class).

class (classe). Tipo definido em C++ pelo usuário. Grupo de objetos que compartilham as mesmas propriedades e re-
lações. Em C++, uma classe pode ser utilizada para definir um novo tipo de dado.

class container (contêiner/recipiente de uma classe). Classe que armazena uma coleção de outros objetos e proporcio-
na um meio para iterar sobre a coleção.
4   Programação em C++: Algoritmos, estruturas de dados e objetos

class method (método de uma classe) (C++). Método que pertence à classe.

class variable (variável de uma classe). Instância de uma classe.

client (cliente). Objeto ou classe que utiliza os serviços de outro objeto ou classe. O objeto (classe) que proporciona
o serviço é o servidor (server).

code (código). Conjunto de instruções escritas em uma linguagem de programação. Ver source code (código-fonte).

cohesion (coesão). Grau no qual os componentes de um sistema software, tal como os membros de uma classe simples,
se conectam. Contrasta com acoplamento (coupling).

collection classes. Ver container class (recipientes ou contêiners de classes).

command line (linha de ordens). A linha que se escreve quando se inicia um programa em uma janela de ordens em
Windows ou Unix. É formada pelo nome do programa e pelos argumentos da linha de ordens.

comment (comentário). Explicação para que o leitor de um programa entenda um segmento ou uma linha de código
de um programa fonte. Não tem influência na compilação do programa.

compile (compilar). Converter um arquivo em código-fonte (programa) em um arquivo objeto que contenha instruções
em linguagem de máquina.

compiler (compilador). Programa que traduz código em uma linguagem de alto nível como C++ a instruções em
códigos de máquina.

compile-time error. Ver Syntax error.

composition (composição). Inclusão de tipos objetos definidos pelo usuário como partes de outros tipos de objetos, em
sentido oposto à derivação (herança).

compound statement (sentença composta). Sentença tal como if ou for que é formada por várias sentenças simples
ou várias partes tais como condição, corpo etc. Também é uma sentença composta, um conjunto de sentenças
fechado entre chaves ({...}).

concatenation (concatenação). Situar uma cadeia depois da outra.

concurrency (concorrência). Ação de objetos diferentes que atuam simultaneamente.

constant (constante). Um valor que não pode ser alterado pelo programa.

construction (construção). Atribuir a um objeto novo um valor inicial.

constructor (construtor) (C++). Uma função-membro (método) com o mesmo nome de uma classe na qual está defi-
nida. Um construtor é invocado para inicializar novas instâncias da classe.
Em C++, um construtor tem o mesmo nome que sua classe.
class Text {
public:
Text(); // construtor
};
Em C++, o compilador chama a um construtor, por default, sempre que se define uma instância de uma classe.
Tipo definido pelo usuário (classe) pode ter mais que um construtor, mas nenhum pode ser visual.

constructor function (função construtor). Função-membro executada quando o programa declara uma instância de
uma classe.
Glossário    5

container class (classe recipiente ou contêiner). Classes utilizadas como estruturas de dados que podem conter um
número de elementos.

copy constructor (construtor de cópia). Função que inicializa um objeto como uma cópia de outro objeto.

coupling (acoplamento). Grau no qual os componentes independentes de um software se conectam. Contrasta com
coesão (cohesion).

CPU (Central Processing Unit). A parte do computador que executa as instruções da máquina.

data field (campo de dados). Variável que está presente em cada objeto de uma classe.

data hiding (ocultação de dados). Ocultação de dados aos usuários de uma classe. Os membros private de uma
classe (class) ou uma estrutura (struct) constituem a parte oculta de uma classe e seu acesso está limitado às
funções da classe.

data member (membro dado) (C++). Ver instance variable (variável de instância). Características de um tipo. Com-
ponente dado de uma classe ou uma estrutura.

dangling pointer (ponteiro perdido). Ponteiro que não aponta para uma posição válida.

debugger (depurador). Programa que permite ao usuário executar outro programa passo a passo, deter sua execução e
inspecionar as variáveis com o objetivo de analisá-las para detectar e corrigir erros.

debugging (depuração). Processo para localizar erro (bug) em um programa e sua posterior eliminação.

declaration (declaração). Sentença que anuncia a existência de uma variável, função ou classe, mas não a define.
Especifica um nome e tipo de identificador.

default constructor (construtor por default). Construtor que pode ser invocado sem parâmetros.

#define directive (diretiva #define). Diretiva que define valores constantes e macros para o pré-processador. Os
valores podem ser consultados durante a fase de pré-processamento com as diretivas #if e #ifdef. As macros
são substituídas pelo pré-processador quando se encontram no arquivo do programa.

definition (definição). Sentença ou série de sentenças que descrevem totalmente uma variável, uma função e sua im-
plementação, um tipo ou uma classe e suas propriedades. É uma declaração que aloca memória.

delete operator (operador delete). É o operador que recicla a memória no heap.

dereferencing (indireção). Localização de um objeto quando se proporciona um ponteiro ao objeto.

derived class (classe derivada). Uma classe que se define como uma extensão ou uma subclasse de outra classe deno-
minada classe-base. Sinônimo de descendant type (tipo descendente), subclases (subclasse) e child class (classe
filha). Classe que modifica uma classe-base, acrescentando campos dado ou funções-membro ou redefinindo fun-
ções-membro. É uma classe que herda de uma ou mais classes alternativas. Também conhecida como subclasse.

descendant type (tipo descendente). Ver derived class (classe derivada). Sinônimo de subclass e child class.

destructor (destruidor). Método (função-membro) que é invocado imediatamente antes da liberação da memória de
um objeto. O destruidor anula os efeitos do construtor e limpa a memória utilizada pelo objeto, se chama imedia-
tamente antes de que se destrua uma instância de uma classe. O nome do destruidor é formado precedendo o nome
da classe com um caractere acento (˜).
class Animal {
public:
6   Programação em C++: Algoritmos, estruturas de dados e objetos

Animal(); // construtor
˜Animal(); // destruidor
};
Em C++, todos os destruidores de uma hierarquia de herança são chamados, não se herdam. Também se define
como uma função que é executada sempre que um objeto sai do escopo (deixa de ser necessário).

directory (diretório). Estrutura em um disco que pode conter arquivos ou outros diretórios. Também denominada
pasta.

dot notation (notação ponto). A notação objeto.função (parâmetros) é utilizada para invocar uma função-membro em
um objeto.

doubly linked list (lista duplamente ligada). Lista ligada na qual cada lista tem um ponteiro para os dois enlaces, an-
terior e posterior.

dynamic binding (ligação dinâmica). Sinônimo de late binding (ligacão tardia). Seleção de uma função específica em
função de sua chamada, dependendo do tipo exato do objeto invocado pela função quando o programa é executado.

dynamic memory allocation (alocação dinâmica de memória). Processo de alocar memória da área de memória disponí-
vel durante a execução. Alocação de memória durante a execução de um programa à medida que se faz necessário.

early binding (ligação adiantada). Ver binding time (tempo de ligação). Resolução de chamadas a funções em tempo
de compilação.

ejecutable file (arquivo executável). Arquivo que contém as instruções de máquina do programa.

encapsulation (encapsulamento). Processo de combinar dados (características) e os métodos (comportamentos) que


manipulam esses dados em um único objeto. O encapsulamento é realizado em C++ utilizando a classe (class)
junto com o controle de acesso oferecido pelas palavras reservadas public, protected e private. Encapsula-
mento é sinônimo de ocultação da informação.

end of file (final de arquivo). Condição verdadeira quando todos os caracteres de um arquivo foram lidos. Observe que
não há nenhum caractere especial de final de arquivo. Quando se compõe um arquivo do teclado, pode-se neces-
sitar escrever um caractere especial para indicar ao sistema operacional o final do arquivo, porém este carac-
tere não faz parte do arquivo.

enum. Tipo de dado enumeração que proporciona identificadores nemotécnicos a um conjunto de constantes inteiras.

enumerated type (tipo enumerado). Tipo com um número finito de valores, em que cada um dos quais tem seu próprio
nome simbólico.

escape character (caractere escape). Caractere de texto que não é usado literalmente, mas que tem um significado
especial, quando combinado com o caractere ou caracteres que o consegue. O caractere \ é um caractere de escape
em cadeias C++.

exception (exceção). Situação na qual um programa encontra uma situação anormal para a qual não foi projetada. Em
C++, pode-se transferir o controle (throw) para outra parte de um programa que esteja projetada para tratar ex-
plicitamente com exceções.

execution (execução). Processo de execução de um programa.

explicit parameter (parâmetro explícito). Parâmetro de uma função-membro diferente do objeto que invoca a função.

expression (expressão). Construção sintática formada por constantes, variáveis, chamadas a funções e operadores que
os combinam.
Glossário    7

extension (extensão). Última parte do nome de um arquivo que especifica o tipo do arquivo. Por exemplo, a exten-
são .cpp representa um arquivo C++.

extraction operator (operador da extração). Operador >> que lê fluxos de entrada.

Fibonacci numbers (números de Fibonacci). Seqüência de números 1, 1, 2, 3, 5, 8, 13, ... na qual cada termo é a soma
dos seus dois antecessores.

file (arquivo). Seqüência de bytes armazenados em um disco.

file pointer (ponteiro de arquivo). Posição dentro de um arquivo do byte seguinte que se lê ou escreve. Pode-se mover
de modo que seja acessível a qualquer byte do arquivo.

floating-point number (número de vírgula/ponto flutuante). Número com uma parte decimal.

folder. Pasta. Ver Directory.

friend (amiga). Em C++, diz-se das funções amigas. Classe ou função que tem acesso às seções privadas de outra classe.

friend function (função amiga) (C++). Função que permite acessar os membros privados ou protegidos de uma classe.
Uma amiga pode ser uma função ou uma classe.

function (função). Seqüência de sentenças que pode ser invocada múltiplas vezes utilizando diferentes valores para
seus parâmetros. Trata-se de um módulo independente que pode ter entrada, saída ou ambas.

function member (membro função ou função-membro). Ver method.

garbage collection (coleta de lixo). Componente de um sistema para realizar administração automática de armazena-
mento, que está relacionada especificamente com a detecção e recuperação de áreas de armazenamento de memó-
ria que não são acessíveis e, por conseguinte, sem candidatos para coleção e reutilização.

generic class (classe genérica). Sinônimo de tipo parametrizado ou molde de classe (parametrized type).

genericity (genericidade). Técnica para definir componentes software que têm mais que uma interpretação, dependendo
dos parâmetros que representam tipos diferentes.

global variable (variável global). Variável cujo escopo de atuação não se restringe a somente uma função.

goto statement (sentença goto). Sentença que transfere o controle para uma sentença diferente que está com uma
etiqueta. Seu uso não é recomendado, exceto em casos excepcionais.

header file (arquivo de cabeçalho). Arquivo que contém protótipos de funções incorporadas de C++. Arquivo que in-
forma ao compilador sobre as características que estão disponíveis em outro módulo ou biblioteca.

heap. Espaço de memória reservado para alocação posterior quando o programa é executado.

hierarchy (hierarquia). Conjunto de classes derivadas de classes-base que podem ser dispostas em estruturas tipo ár-
vore com a classe-base raiz (superclasse) na parte superior da árvore.

identifier (identificador). Nome que se dá a um objeto variável ou constante.

#if directive (diretiva #if). Diretiva ou instrução ao compilador que inclua o código contido entre a diretiva #if e
sua correspondente #endif, sempre que determinada condição for verdadeira.

implicit parameter (parâmetro implícito). Objeto que chama a uma função-membro. Por exemplo, na chamada
x.f(y), o objeto x é o parâmetro implícito de f.
8   Programação em C++: Algoritmos, estruturas de dados e objetos

#include directive (diretiva #include). Instrução ao pré-processador que indica que um arquivo de cabeçalho deve
ser incluído.

information hiding (ocultação da informação). Ver encapsulation. Princípio no qual os usuários de um componente
software (como uma classe) necessitam conhecer somente os detalhes essenciais de como inicializar e acessar o
componente e não necessitam conhecer os detalhes da implementação.

inheritance (herança). Mecanismo pelo qual novas classes são definem de outras classes existentes. As subclasses
(classes derivadas) de uma classe herdam todas as operações (função-membro) de sua classe ascendente (pai). Em
C++, uma classe derivada herda de uma ou mais classes-base. Relação «é-um» (generalização/especialização)
entre uma classe-base geral e uma classe derivada especializada. Hierarquia entre classes.

initialization (inicialização). Atribuir um valor específico a uma variável ou instância de um tipo. Estabelecer uma
variável a um valor bem-definido no momento de sua criação.

initialization list (lista de inicialização). Lista de inicialização de membros dado, separados por vírgulas, que precedem
o corpo da função construtor.

inline function (função inline em linha). Uma função que se compila como código de linha (inline) cada vez que
é chamada.

instance (instância, exemplar). Objeto definido por uma classe. É um objeto com valores definidos. Costuma ser
conhecido como sinônimo de objeto.

instance variables (variáveis de instância). Variáveis que representam o estado interno de um objeto.

instantiation (instanciação). Processo de criação de um objeto partindo de uma definição de uma classe. Quando se
define uma variável de classe, se instancia a variável (cria-se uma instância da classe).

integer (inteiro). Número sem parte decimal.

integer division (divisão inteira). Operação de dividir dois inteiros desprezando o resto. Em C++, o símbolo / repre-
senta a divisão inteira entre dois argumentos inteiros. Por exemplo, 14/5 é 2 e não 2,8.

interface (interface). Em C++, a declaração de classes descreve o que faz um tipo, enquanto a implementação descre-
ve como funciona o tipo. Conjunto de funções que podem ser aplicadas a objetos de um tipo dado.

iostream (iostream). Em C++, uma biblioteca de classes orientada a objetos para E/S. Disponível da versão AT&T
C++ 2.0.

iterator (iterador). Objeto que inspeciona todos os elementos de um recipiente tal como uma lista ligada.

keyword (palavra-chave). Palavra reservada tal como int, double ou new. É uma palavra cuja definição já tem
compilador. Uma palavra-chave (palavra reservada) não pode ser utilizada como nome do objeto dado. Em C++,
as palavras reservadas são escritas com letras minúsculas. A lista de palavras reservadas, em C++, é citada no
Apêndice A.

late binding (ligação tardia). Ver dynamic binding. Resolução de funções em tempo de execução.

library (biblioteca). Conjunto de funções pré-compiladas que podem ser incluídas em programas.

linear search (busca linear). Busca de um elemento em um recipiente (tal como um array, uma lista ou um vetor) em
que a busca de cada elemento é realizada em ordem seqüencial.

link (ligar). Enlace é o processo de transformar arquivos objetos em um único arquivo executável.
Glossário    9

linked list (lista ligada). Estrutura de dados que pode conter um número arbitrário de objetos, em que cada um deles
é armazenado em um objeto de enlace que contém um ponteiro para o enlace seguinte.

linker (vinculador). Programa que combina arquivos de biblioteca e objetos em um arquivo executável.

local variable (variável local). Variável cujo escopo é um bloco único.

logic error (erro lógico). Erro em um programa sintaticamente correto que faz que este atue de forma diferente de sua
especificação.

logical operator (operador lógico). Operador que pode ser aplicado a valores boolean. C++ tem três operadores lógi-
cos: and, or e not.

loop (laço). Seqüência de sentenças ou instruções que se executam repetidamente (várias vezes).

loop invariant (invariante do laço). Sentença relativa ao estado do programa que é preservado quando se executam as
sentenças do laço uma vez.

machine code (código de máquina). Instruções que podem ser executadas diretamente pela CPU.

macro (macro). Mecanismo que serve para substituir uma ordem com uma seqüência predefinida de outras ordens.

magic number (número mágico). Número que aparece em um programa sem explicação.

main function (função main). Função que é chamada em primeiro lugar quando um programa C++ é executado.

Maintainability. Capacidade de mudar e atualizar programas escritos em um estilo normal.

make (construir). Processo combinado de compilação e enlace para gerar um programa executável.

make file (arquivo make). Arquivo que contém diretivas sobre como construir um programa pela compilação e execu-
ção dos arquivos que o constituem. Quando o programa make é executado, apenas são reconstruídos os arquivos-
fonte que são mais recentes que os seus correspondentes arquivos objeto.

manipulator (manipulador). Um valor utilizado por um programa para informar ao fluxo que modifique um dos
seus modos.

member (membro). Parte de uma variável estrutura ou classe que contém um tipo específico de dados ou uma função
que atue sobre esses dados.

member function ( função-membro). Função definida dentro de uma classe ou estrutura. São utilizadas para imple-
mentar diferentes operações sobre o objeto. Em C++, é sinônimo de método. Função que está definida em uma
classe e opera sobre objetos dessa classe. Em outras linguagens de programação, são denominadas métodos ou
operações.

merge sort (ordenação por fusão). Algoritmo de ordenação que primeiro ordena duas metades do array (ou lista) e,
em seguida, mistura ou funde os dois subarrays ordenados.

message (mensagem). Processo de invocar uma operação sobre um objeto. Em resposta a uma mensagem, o método
correspondente se executa no objeto. Uma mensagem é o nome de um método passado a uma instância de um tipo
objeto. Quando se envia uma mensagem a uma instância de um objeto, chama-se a um de seus métodos. Para
enviar uma mensagem a uma instância de um objeto, especifica-se o objeto e o método que deve ser invocado.
Por exemplo, se UmTipo for uma instância de um objeto e Iniciar for um método, a sentença seguinte envia
uma mensagem Iniciar ao objeto. Em C++: UmTipo.Iniciar;
10   Programação em C++: Algoritmos, estruturas de dados e objetos

method (método). Em Smalltalk, é uma operação sobre um objeto. É semelhante a uma função-membro em C++. Os
métodos são implementações das operações relevantes a uma classe de objetos. Os métodos são invocados em
resposta a mensagens.

module (módulo). Em C++, um arquivo-fonte que representa uma unidade de programa. Também representa resto in-
teiro de uma divisão. Uma unidade de programa que contém classes e funções relacionadas. C++ não tem suporte
explícito de módulos. Por convenção, cada módulo é armazenado em um arquivo-fonte independente.

multiple inheritance (herança múltipla). Mecanismo de herança que permite a uma classe herdar de mais de uma clas-
se. Derivação de classes com mais de uma classe-base ou pai. Em C++, a herança múltipla permite que uma classe se
derive de um número variável (uma ou mais) de classes-base.

mutator function (função mutante). Função-membro que muda o estado de um objeto.

nested block (bloco aninhado). Bloco (sentença, laço, função...) que está contido dentro de outro bloco.

new. Operador para atribuição de espaço a um tipo no heap e inicialização do objeto em uma operação. Em C++, new
é invocado com uma chamada a um construtor: Círculo *UmCírculo = new Círculo (50, 50, 50);

newline (nova linha). Caractere ´\n´ que representa o final de uma linha e o salto de escrita para a linha seguinte.

new operator (operador new). Operador que atribui nova memória do heap.

null pointer (ponteiro nulo). Valor que indica que um ponteiro não aponta a nenhum objeto.

null string (cadeia nula). Cadeia vazia com um caractere inicial de zero nulo e com um comprimento de zero.

null zero (zero nulo). Caractere de terminação da cadeia. Todas as constantes de cadeia C++ e cadeias armazenadas
em arrays de caracteres terminam em zero nulo. O valor ASCII do zero nulo é 0.

object (objeto). Combinação de dados e coleção de operações que atuam sobre os dados. Em C++, uma instância de
uma classe (um tipo objeto). Valor de um tipo definido pelo usuário. É caracterizado por um estado (atributos) e um
comportamento (operações ou funções).

object file (arquivo objeto). Arquivo que contém instruções máquina de um módulo. Os arquivos objeto devem com-
binar-se com arquivos de biblioteca por meio do vinculador para converter-se em arquivos executáveis.

Object-oriented design (projeto orientado a objetos). Projeto de um programa por meio da identificação de objetos, suas
propriedades e suas relações. É diferente do projeto estruturado onde em que os elementos fundamentais são objetos.

Object-oriented programming (programação orientada a objetos). Método ou estilo de programação que utiliza ob-
jetos, especialmente com uma linguagem orientada a objetos, tais como C++.

Objective-C. Linguagem orientada a objetos que combina C e Smalltalk.

octal (octal) . Sistema de numeração com oito elementos-base. Seus dígitos são: 0, 1, 2, 3, 4, 5, 6 e 7.

opening a file (abertura de um arquivo). Preparação de um arquivo para leitura ou escrita.

operating system (sistema operacional). Software que permite executar programas de aplicação e do sistema, e pro-
porciona serviços (tais como sistemas de arquivos) para esses programas.

operator (operador). Atua sobre dados e realiza cálculos matemáticos ou altera dados a outros tipos de dados.
Exemplos de operadores são: +, -, *, sizeof(),and, or etc. Símbolo que representa uma operação
lógica ou matemática.
Glossário    11

operator associativity (associatividade de operadores). Regra que governa ou controla a ordem na qual operadores de
mesma prioridade são executados. Por exemplo, o operador de C++ é associativo pela esquerda, o que significa
que a-b-c equivale a (a-b)-c, e o operador = é associativo pela direita, o que significa que a=b=c equivale a
a=(b=c).

operator precedence (precedência ou prioridade de operadores). Regra que governa ou controla qual operador é ava-
liado em primeiro lugar. Por exemplo, em C++, o operador and tem uma precedência (prioridade) mais alta que
o operador or. Por conseguinte, a or b and c equivale a a or (b and c).

order of operators (ordem de operadores). Denominada hierarquia de operadores ou precedência de operadores,


determina exatamente como C++ calcula fórmulas.

overloading (sobrecarga). Processo de escrever mais de uma função ou operador com o mesmo nome. As funções
devem diferir em sua lista de argumentos de modo que C++ possa identificá-las com uma chamada. Propriedade
que permite dar mais de um significado ou tarefa a um operador ou a um nome de função.

override (anular, ignorar, redefinir). Reimplantar, redefinir. Utiliza-se para descrever a reimplementação dos métodos
em tipos objeto.

parameter (parâmetro). Lista de variáveis contidas entre parênteses que seguem o nome de uma função ou um proce-
dimento. Os parâmetros indicam o número e o tipo de argumentos que são enviados para a função ou procedimen-
to. Argumentos de uma função declarados no cabeçalho da função e cujos valores são estabelecidos quando a
função é chamada. Por exemplo, na função float demo(int n, float x), n e x são parâmetros.

parameter passing (passagem de parâmetros). Uso de expressões para inicializar as variáveis parâmetro de uma fun-
ção quando esta é invocada.

parameter value (valor do parâmetro). Expressão que se proporciona a um parâmetro quando se chama a uma função.

parametrized type (tipo parametrizado). Definição de uma classe que depende de um ou mais parâmetros. Com tipos
parametrizados, pode-se definir uma nova classe estabelecendo os parâmetros em uma única definição parame-
trizada. As novas versões de C++ incorporam a palavra reservada template, que suporta tipos de dados para-
metrizados. O termo é sinônimo de classe genérica e molde.

parent class (classe pai). Em uma hierarquia de classes com herança, uma classe pai é qualquer classe da qual se de-
riva outra classe.

passing by address (passagem por endereço). Um argumento (variável local) é passado por endereço quando o ende-
reço da variável na memória é enviado e atribuído à lista de parâmetros da função receptora. Se uma alteração é
feita em um parâmetro da função, também se modifica o valor da variável do argumento.

passing by copy (passagem por cópia). Sinônimo de passing by value.

passing by reference (passagem por referência). Mecanismo de chamada a uma função que passa argumentos a uma função,
passando uma cópia de cada valor do argumento. (Em C++, significa o mesmo que passagem por endereço.)

passing by value (passagem por valor). Mecanismo de chamada a uma função que passa argumentos a uma função,
passando uma cópia de cada valor do argumento. Por default, todas as variáveis argumento são passadas por valor.
Sinônimo de passing by copy.

path (caminho, rota de acesso). Rota que se utiliza do diretório raiz até um subdiretório específico quando se deseja
localizar um arquivo.

persistence (persistência). Propriedade de um objeto que lhe permite «sobreviver» (perdurar) durante a execução de
um programa; em essência, os dados permanecem durante a execução do programa e saem entre execuções de um
programa. Todas as bases de dados suportam persistência.
12   Programação em C++: Algoritmos, estruturas de dados e objetos

pointer (ponteiro). Variável que contém o endereço de outra variável. Valor que representa o endereço ou posição de
memória de um objeto.

polymorphism (polimorfismo). Em grego, significa «múltiplas formas». Propriedade pela qual a mesma operação pode
ter efeitos diferentes sobre classes diferentes. O polimorfismo se refere, geralmente, ao processo pelo qual C++
decide qual é a função a ser chamada durante a execução. Em C++, o polimorfismo é suportado por funções
virtuais e ligação dinâmica. Propriedade que permite selecionar uma função entre várias funções com o mesmo
nome, mediante a comparação dos tipos de parâmetros reais.

postfix operator (operador pós-fixado). Operador unitário que se escreve depois do seu argumento.

precondition (precondição). Condição que deve ser verdadeira (correta) quando se chama uma função.

predicate function (função predicado). Função que devolve um valor lógico (boolean).

prefix operator (operador prefixado). Operador unitário que se escreve antes de seu argumento.

preprocessor (pré-processador). Programa que processa um arquivo-fonte antes do compilador. O pré-processador


C++ inclui arquivos, condicionalmente engloba seções de código e executa substituições de macros. As diretivas
do pré-processador têm sempre o prefixo #.

preprocessor directive (diretiva do processador). Ordem precedida por um caractere # que se situa em seu código-
fonte e que instrui o compilador a modificar de alguma forma o código-fonte. As diretivas mais usuais são #de-
fine e #include.

private (privada). Em C++, um especificador de acesso que mostra uma seção de uma classe, cujas variáveis e funções
somente podem ser acessadas mediante funções-membro dessa classe.

private inheritance (herança privada). Tipo de herança na qual somente as funções membro podem utilizar as funções
da classe-base. São definidas com a palavra reservada private.

procedence of operators (precedência de operadores). Hierarquia ou prioridade de operadores.

procedure (procedimento). Função que não devolve um valor.

program (programa). Conjunto de instruções que indicam ao computador quais tarefas realizar.

programming language (linguagem de programação). Conjunto de regras que servem para escrever instruções de
computador. Linguagens de programação orientada a objetos com C++, Smalltalk, Eiffel, Visual Basic etc.

project (projeto). Coleção de arquivos-fonte e suas dependências.

prompt (petição). Cadeia de caracteres que solicita ao usuário do programa que lhe proporcione uma entrada.

protected (protegido). Especificador de acesso a uma classe C++ que mostra uma seção protegida cujas variáveis e
funções somente podem ser acessadas com funções-membro da classe e de suas classes derivadas. Se um membro
de uma classe é protegido (protected) somente pode ser acessado por meio de funções-membro e amigas
(friend) da classe na qual está declarado ou ou uma classe que se deriva de outra classe.

protocol (protocolo). Especificação dos modos nos quais se podem realizar operações sobre um objeto.

prototype (protótipo). Definição de uma função que inclui seu nome, tipo de retorno e lista de parâmetros. Ver declaração.

pseudocode (pseudocódigo). Mistura de espanhol (ou inglês) e C++ que se utiliza para construir algoritmos e/ou pro-
gramas quando se desenvolve o código de um programa.
Glossário    13

public (pública). Especificador de acesso que mostra a seção pública de uma classe. Qualquer função do programa
pode acessar as variáveis e funções dessa seção. Se um membro de uma classe é público (public), este pode ser
acessado por qualquer função-membro ou não.

pure virtual function (função virtual pura). Função virtual que não contém nenhum código, mas que é utilizada para
atuar como guia de outras funções derivadas por meio de herança.

RAM (Random Access Memory) (Memória de acesso aleatório). Memória do computador que armazena o código e
os dados dos programas em execução.

random-access (acesso aleatório). Tipo de acesso que permite acessar diretamente um valor de um arquivo (ou
estrutura similar) sem ter de ler os valores ou dados que o precedem.

random-access file (arquivo de acesso aleatório). Arquivo cujos registros podem ser acessados em qualquer ordem.

recursive function (função recursiva). Função que pode chamar-se a si mesma. Deve obrigatoriamente incluir em sua
definição uma condição de terminação.

redirection (redirecionamento). Ligar a entrada ou a saída de um programa a um arquivo, em vez de ligá-lo ao teclado
ou ao monitor.

reference parameter (parâmetro referência). Parâmetro que se «liga» a uma variável disponibilizada na chamada. As
mudanças realizadas no parâmetro no interior da função afetam as variáveis externas à função.

relational operator (operador relacional). Operador que compara dados. Indica as operações que podem ser realizadas
com variáveis ou constantes (=, <, >, <> etc.).

reserved word (palavra reservada). Palavra que tem um significado especial em uma linguagem de programador e,
como conseqüência, não pode ser utilizada como nome (identificador) pelo programador. Por exemplo, while,
for, and, or...

return value (valor de retorno). Valor devolvido por uma função por meio de uma sentença return.

reusability (reusabilidade, reutililização). Capacidade de utilizar módulos de software bem projetados que tenham sido
comprovados em diferentes lugares, em diferentes aplicações, de modo que minimizem o desenvolvimento do novo
código. As linguagens orientadas a objetos utilizam herança como mecanismo de reusabilidade/reutilização.

roundoft error (erro de arredondamento). Erro introduzido com base no fato de que o computador pode armazenar
somente um número finito de dígitos de um número de ponto flutuante.

run-time error (erro em tempo de execução). Ver logic error.

run-time stack (pilha de tempo de execução). Estrutura de dados que armazena as variáveis locais e devolve endereços
das funções quando um programa é executado.

scientific notation (notação científica). Método de representação de números muito grandes ou muito pequenos.

scope (escopo). Duração e acessibilidade de uma variável. Define as partes de um programa que podem acessar variá-
veis específicas. Em C++, uma seção do código-fonte na qual se pode utilizar um identificador. Em C++, os nomes
podem ter escopo local, escopo de arquivo ou escopo de classe. Por exemplo, uma variável declarada dentro de
uma função é local por default e somente pode ser acessada por um código interior à função. Parte de um progra-
ma na qual se define um programa. Visibilidade, disponibilidade e vida de um objeto dentro de um programa.
Existem seis tipos diferentes de escopos: global, local, class, função, namespace e arquivo.

selection sort (ordenação por seleção). Algoritmo de ordenação no qual o elemento menor se encontra repetidamente
e se elimina até que não reste nenhum elemento.
14   Programação em C++: Algoritmos, estruturas de dados e objetos

sentinel (sentinela). Valor de entrada de dados que não é utilizado como valor de entrada real, mas que, entretanto,
mostra o final da entrada.

separate compilation (compilação separada). Compilação independente de cada arquivo-fonte e combinação posterior
dos arquivos objetos em um arquivo executável.

sequential access (acesso sequencial). Acesso a valores de modo sequencial (um após o outro sem que nenhum
seja saltado).

sequential file (arquivo sequencial). Arquivo no qual se acessa registro por registro.

server (servidor). Objeto que proporciona serviços que são utilizados por outros objetos. Os objetos que utilizam os
serviços são clientes.

Shell (Shell, cobertura). Parte de um sistema operacional na qual o usuário tecla (escreve) ordens para executar pro-
gramas e manipular arquivos.

side effect (efeito colateral). Efeito de uma função diferente do efeito típico de devolução de um valor.

simple statement (sentença simples). Sentença que é formada por apenas uma expressão (uma única sentença).

single inheritance (herança simples). Tipo de herança na qual uma classe pode ser herdada somente de outra classe,
isto é, as classes têm apenas uma classe-base.

Smalltalk Linguagem orientada a objetos. Contém um ambiente integrado de desenvolvimento de software que inclui
a possibilidade de visualizar múltiplas janelas e folhear (navegar) pelas classes.

source code (código-fonte). Instruções de um programa escritas em uma linguagem de programação tal como C++.

source file (arquivo-fonte). Arquivo que contém instruções em uma linguagem de programação tal como C, C++ ou
Java.

stack (pilha). Estrutura de dados na qual elementos da mesma somente podem ser acrescentados e eliminados em de-
terminada posição, denominada topo da pilha.

state (estado). Valores dos atributos internos de um objeto.

statement (sentença). Unidade sintática de um programa. Em C++, uma sentença pode ser: simples ou composta.

static binding (ligação estática). Tipo de ligação que associa, em tempo de compilação, um nome a uma função
com o código que é executado quando essa função é chamada. Contrasta com ligação dinâmica, na qual a men-
cionada associação é produzida durante a execução de um programa. Seleção da função específica que é cha-
mada, que depende do tipo de objeto que invoca a função e que é conhecida quando o programa é compilado.
É o tipo de ligação clássica de Pascal, C, FORTRAN etc. C++ possui também ligação dinâmica (enlace em
tempo de execução).

static data member (membro dado estático). Membro que existe somente uma vez, com independência de quantas
variáveis de classe se definam.

static keyword (palavra-chave static). Palavra-chave de C++ que tem vários significados não relacionados: re-
presenta variáveis locais que não se atribuem na pilha; variáveis globais ou funções que são privadas a um módu-
lo; variáveis de classe que se compartilham entre todos os objetos de uma classe ou funções-membro que não têm
um parâmetro implícito.

static member function ( função-membro estática). Função que tem acesso somente a membros dado estáticos de
uma classe.
Glossário    15

static method (método estático). Método decidido pelo compilador em tempo de compilação. Ver early binding.

static variable (variável estática). Variável que não perde seu valor quando termina o bloco no qual está definida.

stepwise refinement (refinamento passo a passo). Resolução de um problema mediante sua ruptura ou divisão suces-
siva em problemas menores e resolução posterior destes.

storage class (classe de armazenamento). Em C++, propriedade de um objeto que determina quanto tempo o armaze-
namento de um objeto permanece disponível no programa. As palavras reservadas auto, register, static
e extern especificam a classe de armazenamento de um objeto.

stream ( fluxo). Literalmente, fluxo de caracteres (um depois do outro) fluindo entre dispositivos de um computador.
Abstração de uma seqüência de bytes da qual os dados podem ser lidos ou na qual os dados podem ser escritos.

string (cadeia). Um ou mais caracteres terminados com um caractere nulo. Seqüência de caracteres.

string constant (constante cadeia). Um ou mais grupos de caracteres que terminam em um zero nulo.

string literal (literal de cadeia). Outro nome de constante de cadeia.

structure (estrutura). Unidade ou entidade de informação relacionada que contém um ou mais membros, tais como
número de carteira de identidade, nome de um estudante, preço da matrícula etc. Declaração definida pelo usuário
que encapsula membros dado e funções-membro ou operações.

structured programming (programação estruturada). Metodologia de desenvolvimento de software que utiliza de-
composição funcional e um enfoque de projeto descendente para desenvolver software tradicional; técnicas de
programação tradicional de fratura de uma tarefa em subtarefas modulares.

subclass (subclasse). Classe que serve como classe-base para outra classe. Uma superclasse proporciona o comportamen-
to e atributos de classes derivadas dela pelo mecanismo de herança. Sinônimo de classe-base ou tipo ascendente.

syntax (sintaxe). Regras que definem como as instruções de uma linguagem de programação específica se formam.

syntax error (erro de sintaxe). Um erro produzido quando uma instrução (sentença) não segue as regras de linguagem
de programação e é recusada pelo compilador.

tab character (caractere tabulação). Caractere ´\t´ que avança para o caractere seguinte da linha de uma série de
posições fixas e predefinidas conhecidas como posições de tabulação.

template (molde, padrão). Modelos de classe das quais outras classes podem ser geradas.

ternary operator (operador ternário). Operador com três argumentos. C++ tem um operador ternário a ? b : c.

text file (arquivo de texto). Arquivo no qual os valores se armazenam em sua representação de texto.

this. Em C++, um ponteiro ao objeto atual. Pode-se utilizar em funções-membro para referir-se à instância real da classe.

type extensibility (extensibilidade de tipo). Derivar novos tipos (por meio de herança) e acrescentar ou modificar com-
portamentos e características para adequar suas necessidades.

typecast (conversão, moldes de tipos). Conversão temporal de um objeto a outro tipo de dado.

unary operator (operador unitário). Operador de soma ou diminuição utilizado antes de uma variável ou constante.
Operador com um único argumento.

uninitialized variable (variável não inicializada). Variável que não foi fixada a um valor específico.
16   Programação em C++: Algoritmos, estruturas de dados e objetos

union (união). Tipo de dado semelhante à estrutura, com a restrição de que uma união pode conter somente um de seus
membros em qualquer instante dado.

user-defined type (tipo definido pelo usuário). Estrutura que contém as características e comportamento do tipo. Em
C++, um tipo definido por um usuário é uma classe. O compilador o trata como um tipo integrado.

value parameter (parâmetro valor). Parâmetro de uma função cujo valor é copiado em uma variável parâmetro de uma
função. Se uma variável é passada como parâmetro valor, as mudanças que ocorrem no parâmetro dentro da função
não afetam a variável original fora do programa.

variável. Posição de armazenamento que pode conter diferentes valores.

variable scope (escopo de uma variável). Zona na qual «existe» uma variável em seu programa.

virtual base class (classe-base virtual). Classe-base que é compartilhada com classes derivadas por herança múltipla.

virtual function ( função virtual). Em C++, uma função virtual está qualificada pela palavra reservada virtual. Na
prática, as funções virtuais são invocadas normalmente por um ponteiro para a classe-base. As funções virtuais
suportam polimorfismo (ligação dinâmica). Função que pode ser redefinida em uma classe derivada. A função real
chamada dependerá do tipo de objeto invocado em tempo de execução.

void (C++). Nome de um tipo utilizado para indicar que uma função não devolve nenhum valor, isto é, um procedi-
mento.

void keyword (palavra reservada void). Palavra reservada que indica tipo desconhecido ou nenhum tipo. Um pro-
cedimento é uma função que devolve void.

white space (espaço em branco). Seqüência de caracteres espaço, tabulação ou nova linha.

Você também pode gostar