Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Apêndice A 
Tabela de precedência dos operadores 
Os operadores são apresentados em ordem decrescente de precedência, de cima para baixo. 
Fig. A.1 Tabela de precedência de operadores (parte 1 de 2). 
o e 
e [e 
Operador 
Tipo 
Associatividade 1 
. 
resolução de escopo binário resolução de escopo unário 
esquerda para a direita 
O 
parênteses 
esquerda para a direita 
[] 
subscrito de array 
. 
seleção de membro via objeto 
-> 
seleção de membro via ponteiro 
++ - 
pós-incremento unário pós-decremento unário 
typeid 
informação sobre tipo durante a execução 
dynainic_cast< tipo> 
coerção com verificação de tipo durante a execução 
staticcast< tipo> 
coerção com verificação de tipo durante a compilação 
reinterpretcast< 
tipo> 
coerção para conversões não-padrão 
constcast< tipo> 
retira o atributo const com coerção 
++ 
pré-incremento unário 
direita para a esquerda 
- - 
pré-decremento unário 
+ 
mais unário 
- 
menos unário 
! 
negação lógica unária 
- 
complemento sobre bits unário 
tipo ) 
coerção ao estilo de C unário 
sizeof 
determina o tamanho em bytes 
& 
endereço 
* 
derreferencia 
new 
alocação dinâmica de memória 
new [3 
alocação dinâmica de array 
delete 
desalocação dinâmica de memória 
dele te [3 
desalocação dinâmica de array 
* 
ponteiro para membro via objeto 
esquerda para a direita 
ponteiro para membro via ponteiro 
* 
multiplicação 
esquerda para a direita 
/ 
divisão 
% 
módulo (resto da divisão inteira) 
+ 
adição 
esquerda para a direita 
- 
subtração 
1036 C++ COMO PROGRAMAR 
« » 
< 
<= 
> 
> 
& 
A 
&& 
II 
*- 1= 
&= 
«= 
»= 
deslocamento sobre bits para a esquerda 
deslocamento sobre bits para a direita 
relacional menor do que 
relacional menor do que ou igual a 
relacional maior do que 
relacional maior do que ou igual a 
relacional igual a 
relacional não igual a 
AND (E) sobre bits 
OR (OU) exclusivo sobre bits 
OR (OU) inclusivo sobre bits 
AND (E) lógico ___________________ 
OR (OU) lógico ___________________ 
condicional ternário 
atribuição 
atribuição com adição 
atribuição com subtração 
atribuição com multiplicação 
atribuição com divisão 
atribuição com módulo 
atribuição com AND sobre bits 
atribuição com OR exclusivo sobre bits 
atribuição com OR inclusivo sobre bits 
atribuição com deslocamento sobre bits para a esquerda atribuição com deslocamento sobre bits para a direita 
vírgula esquerda para a direita 
esquerda para a direita 
esquerda para a direita 
esquerda para a direita 
Operador Tipo Associatividade 1 
esquerda para a direita esquerda para a direita esquerda para a direita esquerda para a direita esquerda para a direita direita para a esquerda direita para a esquerda 
Fig. A.1 Tabela de precedência de operadores (parte 2 de 2). 
Apêndice B 
Conjunto de caracteres ASCII 
Conjunto de Caracteres ASCII 
Fig. B.1 O conjunto de caracteres ASCII 
Os dígitos à esquerda da tabela são os dígitos da esquerda do equivalente decimal (0 a 127) do código do caractere e os dígitos do topo da tabela são os dígitos da direita do código do caractere. Por exemplo, o código do caractere “F” é 70 e o código do caractere “&“ é 38. 
O 1 2 3 4 5 6 7 8 9 
O 
2 
3 
4 
5 
6 
7 
8 
9 
1 O 
11 
12 
flui 
soh 
stx 
etx 
eot 
enq 
ack 
bel 
bs 
ht 
ni 
vt 
ff 
cr 
so 
si 
die 
dcl 
dc2 
dc3 
dc4 
nak 
syn 
etb 
can 
em 
sub 
esc 
fs 
gs 
rs 
us 
sp 
‘ 
# 
$ 
% 
& 
‘ 
( 
) 
* 
+ 
, 
- 
. 
/ 
O 
1 
2 
3 
4 
5 
6 
7 
8 
9 
: 
; 
< 
= 
> 
? 
@ 
A 
B 
C 
D 
E 
F 
G 
H 
1 
J 
K 
L 
M 
N 
O 
P 
Q 
R 
S 
T 
U 
V 
W 
X 
Y 
Z 
[ 
\ 
3 
‘ 
‘ 
a 
b 
e 
d 
e 
f 
g 
h 
i 
j 
k 
1 
m 
n 
o 
p 
q 
r 
s 
t 
u 
v 
w 
x 
y 
z 
{ 
} 
dei 
Apêndice C 
Sistemas de numeração 
Objetivos 
• Compreender os conceitos básicos dos sistemas de numeração, tais como base, valor posiciona! e valor do símbolo. 
• Compreender como trabalhar com números representados nos sistemas de numeração binário, octa! e hexadecimal. 
• Ser capaz de abreviar números binários como números octais ou hexadecimais. 
• Ser capaz de converter números octais e hexadecimais em números binários. 
• Ser capaz de fazer conversões de números decimais para seus equivalentes binários, octais e hexadecimais e vice-versa. 
• Compreender a aritmética binária e como números binários negativos são representados usando a notação de complemento de dois. 
Aqui estão os únicos números ratificados. 
Wil!iam Shakespeare 
A natureza tem uma espécie de sistema coordenado aritmético-geométrico, 
pois ela possui todos os tipos de modelos. O que percebemos da natureza está 
em modelos, e todos os modelos da natureza são belos. 
Ocorre-me que o sistema daquela natureza deve ser uma beleza real, pois 
em química descobrimos que as associações são sempre em belos 
números inteiros - não há frações. 
Richard Buckminster Fu!!er 
4 
APÊNDICE C - SISTEMAS DE NUMERAÇÃO 1039 
Visão Geral 
C.1 Introdução 
C.2 Abreviando números binários como números octais e hexadecimais 
C.3 Convertendo números octais e hexadecimais em números binários 
C.4 Convertendo do sistema binário, octal ou hexadecimal para o sistema decimal 
C.5 Convertendo do sistema decimal para o sistema binário, octal ou hexadecimal 
C.6 Números binários negativos: notação em complemento de dois 
Reswno . Terminologia Exetrícios de auto-revisão Respostas aos exercícios de auto-revisão • Ese,vícios 
C.1 Introdução 
Neste apêndice, apresentamos os principais sistemas de numeração que os programadores utilizam, especialmente quando estão trabalhando em projetos de software que exigem muita interação com hardware em “nível de máquina”. Projetos como esses incluem sistemas operacionais, software de redes de computadores, compiladores, sistemas de bancos de dados e aplicações que exigem alto desempenho. 
Quando escrevemos um inteiro como 227 ou -63 em um programa, assume-se que o número está no sistema de numeração decimal (base 10). Os dígitos no sistema de numeração decimal são 0, 1, 2, 3,4, 5, 6, 7, 8 e 9. O menor dígito é O e o maior dígito é 9 um a menos que a base 10. Internamente, os computadores usam o sistema de numeração binário (base 2). O sistema de numeração binário tem apenas dois dígitos, ou seja O e 1. Seu menor digito é O e seu maior digito é 1 - um a menos que a base 2. A Fig. C.l resume os dígitos usados nos sistemas de numeração binário, octal, decimal e hexadecimal. 
Como veremos, os números binários tendem a ser muito maiores do que seus equivalentes decimais. Os programadores que trabalham com linguagens de montagem (assemblers) e com linguagens de alto nível, que permitem que eles desçam ao “nível da máquina”, acham complicado trabalhar com números binários. Assim, dois outros sistemas de numeração - o sistema de numeração octal (base 8) e o sistema de numeração hexadecimal (base 16) - são populares, principalmente porque tornam conveniente a abreviação de números binários. 
No sistema de numeração octal, os dígitos variam de O a 7. Como tanto o sistema de numeração binário quanto 
o sistema octal possuem menos dígitos que o sistema decimal, seus dígitos são os mesmos que seus correspondentes do sistema decimal. 
O sistema hexadecimal apresenta um problema porque ele exige dezesseis dígitos - o menor dígito é O e o maior dígito tem valor equivalente a 15 (um a menos que a base 16). Por convenção, usamos as letras de A a F para representar os dígitos correspondentes aos valores decimais de 10 a 15. Desta forma, em hexadecimal podemos ter números como 876 consistindo apenas de dígitos semelhantes aos decimais, números como 8A55F consistindo em dígitos e letras, e números como FFE consistindo apenas em letras. Ocasionalmente, um número hexadecimal é grafado como uma palavra comum como FACE ou CADA - isso pode parecer estranho aos programadores acostumados a trabalhar com números. A Fig. C.2 resume cada um dos sistemas de numeração. 
Cada um desses sistemas de numeração usa a notação posicional - cada posição na qual é escrito um dígito possui um valor posicional diferente. Por exemplo, no número decimal 937 (o 9,o 3 e o 7 são chamados de valores dos símbolos ou valores dos algarismos), dizemos que o 7 é escrito na posição das unidades, o 3 é escrito na posição das dezenas e o é escrito na posição das centenas. Observe que cada uma dessas posições é uma potência da base (base 10) e que essas potências começam° 
DIgito binário Dígito octal Digito decimal Dígito Hexadecimal 
Fig. C.1 Dígitos dos sistemas de numeração binário, octal, decimal e hexadecimal (parte 1 de 2). 
1040 C++ COMO PROGRAMAR 
Fig. C.1 Dígitos dos sistemas de numeração binário, octal, decimal e hexadecimal (parte 2 de 2). 
Dígito decimal 9 3 7 
Nome da posição Centenas Dezenas Unidades 
Valor posicional 100 10 1 
Valor posicional como 
uma potência da base 102 10’ 10° 
Fig. C.3 Valores posicionais no sistema de numeração decimal. 
Para números decimais maiores, as próximas posições à esquerda seriam a posição dos milhares ti u eievauo a terceira potência), aposição das dezenas de milhar (10 elevado à quarta potência), a posição das centenas de milhar (10 elevado à quinta potência), a posição dos milhões (10 elevado à sexta potência), a posição das dezenas de milhões (10 elevado à sétima potência) e assim por diante. 
No número binário 101, dizemos que o 1 da extremidade da direita está escrito na posição da unidade, o O está escrito na posição do dois e o 1 da extremidade esquerda está escrito na posição do quatro. Veja que cada uma dessas posições é uma potência da base (base 2) e que essas potências começam em O e aumentam de 1 em 1 à medida que nos movemos para a esquerda no número (Fig. C.4). 
Para números binários mais longos, as próximas posições à esquerda seriam a posição do oito (2 elevado à 
terceira potência), a posição do dezesseis (2 elevado à quarta potência), a posição do trinta e dois (2 elevado à quinta potência), aposição do sessenta e quatro (2 elevado à sexta potência) e assim por diante. 
No número octal 425, dizemos que o 5 está escrito na posição das unidades, 02 está escrito na posição do oito 
e o 4 está escrito na posição do sessenta e quatro. Veja que cada uma dessas posições é uma potência da base (base 
8) e que essas potências começam em O e aumentam de 1 em 1 à medida que nos movemos para a esquerda no 
número (Fig. C.5). 
Dígito binário Dígito octal 
Digito decimal 
Dí 
gito Hexadecimal 
4 
4 
4 
5 
5 
5 
6 
6 
6 
7 
7 8 9 
7 8 9 A B C D E F 
(valor decimal (valor decimal (valor decimal (valor decimal (valor decimal (valor decimal 
10) II) 12) 13) 14) 15) 
Atributo Binário Octal De 
cimal Hexadecimal 
Base 2 8 10 Menor dígito O O O Maior dígito 1 7 9 
16 O F 
Fig. C.2 Comparação entre os sistemas de numeração binário, 
octal, decimal e hexadecimal. 
Valores posicionais no sistema de numeração decimal 
APÊNDICE C - SISTEMAS DE NUMERAÇÃO 1041 
Para números octais mais longos, as próximas posições à esquerda seriam aposição do quinhentos e doze (8 
elevado à terceira potência), a posição do quatro mil e noventa e seis (8 elevado à quarta potência), a posição do trinta e dois mil, setecentos e sessenta e oito (8 elevado à quinta potência) e assim por diante. 
No número hexadecimal 3DA, dizemos que o A está escrito na posição das unidades, o D está escrito na posição do dezesseis e o 3 está na posição do duzentos e cinqüenta e seis. Veja que cada uma dessas posições é uma potência da base (base 16) e que essas potências começam em O e aumentam de 1 em 1 à medida que nos movemos para a esquerda no número (Fig. C.6). 
Fig. C.6 Valores posicionais no sistema de numeração hexadecimal. 
Para números hexadecimais mais longos, as próximas posições seriam aposição do quatro mile noventa e seis (16 
elevado à terceira potência), aposição do trinta e dois mil, setecentos e sessenta e oito (16 elevado à quarta potência) 
e assim por diante. 
C.2 Abreviando números binários como números octais e hexadecimais 
O principal uso dos números octais e hexadecimais em computação é abreviar representações binárias longas. A Fig. C.7 destaca o fato de que números binários longos podem ser expressos de uma forma concisa em sistemas de numeração com bases maiores do que a do sistema de numeração binário. 
Valores posicionais no sistema de numeração binário 
1 
Digito binário 1 O Nome da posição Quatro Dois Valor posicional 4 2 Valor posicional como uma potência da base (2) 22 2’ 
1 Unidade 1 2° 
Fig. C.4 Valores posicionais no sistema de numeração binário. 
Valores posicionais no sistema de numeração octal 
1 
Dígito octal 4 2 Nome da posição Sessenta e quatro Oito Valor posicional 64 8 Valor posicional como uma potência da base (8) 82 81 
5 Unidade 1 8° 
Fig. C.5 Valores posicionais no sistema de numeração octal. 
1 Valores posicionais no sistema de numeração hexadecimal 
Dígito hexadecimal 3 D Nome da posição Duzentos e Dezesseis cinqüenta e seis Valor posicional 256 16 Valor posicional como uma potência da base (16) 162 161 
A Unidade 1 16° 
1042 C++ COMO PROGRAMAR 
Fig. C.7 Equivalentes decimais, binários, octais e hexadecimais. 
Um relacionamento particularmente importante com o sistema de numeração binário, que tanto o sistema de numeração octal quanto o hexadecimal possuem, é que suas bases (8 e 16, respectivamente) são potências da base do sistema de numeração binário (base 2). Examine o número binário com 12 dígitos a seguir e seus equivalentes em octal e hexadecimal. Veja se você pode determinar como esse relacionamento torna conveniente exprimir números binários como números octais e hexadecimais. A resposta vem após os números. 
Número binário Equivalente octal Equivalente hexadecimal 
100011010001 4321 8D1 
Para ver como o número binário é convertido facilmente em um número octal, simplesmente divida o número binário de 12 dígitos em grupos de três bits consecutivos cada um e escreva aqueles grupos sobre os dígitos correspondentes do número octal, como se segue 
100 011 010 001 
4 3 2 1 
Observe que o dígito octal escrito sob cada grupo de três bits corresponde exatamente ao equivalente octal daquele número binário de 3 dígitos, de acordo com o que mostra a Fig. C.7. 
O mesmo tipo de relacionamento pode ser observado na conversão de números do sistema binário para o hexadecimal. Em particular, divida o número binário de 12 dígitos em grupos de quatro bits consecutivos cada um e escreva aqueles grupos sobre os dígitos correspondentes do número hexadecimal, como se segue 
1000 1101 0001 
8 0 1 
Observe que o dígito hexadecimal que você escreveu sob cada grupo de quatro bits corresponde exatamente ao equivalente hexadecimal daquele número binário de quatro dígitos, como mostra a Fig. C.7. 
C.3 Convertendo números octais e hexadecimais em números binários 
Na seção anterior, vimos como converter números binários em seus equivalentes octais e hexadecimais, formando grupos de dígitos binários e simplesmente rescrevendo esses grupos como seus valores octais e hexadecimais equivalentes. Esse processo pode ser usado na ordem inversa para produzir o número binário equivalente a um número octal ou hexadecimal dado. 
Número decimal 
Representação binária 
Representação octal 
Representação hexadecimal 
O 
O 
O 
0 
1 
1 
1 
1 
2 
10 
2 
2 
3 
11 
3 
3 
4 
100 
4 
4 
5 
101 
5 
5 
6 
110 
6 
6 
7 
111 
7 
7 
8 
1000 
10 
8 
9 
1001 
11 
9 
10 
1010 
12 
A 
11 
1011 
13 
B 
12 
1100 
14 
C 
13 
1101 
15 
D 
14 
1110 
16 
E 
15 
1111 
17 
F 
16 
10000 
20 
10 
APÊNDICE C - SISTEMAS DE NUMERAÇÃO 1043 
Por exemplo, o número octal 653 é convertido em binário simplesmente escrevendo-se o 6 como seu número 
binário equivalente de 3 dígitos 110, o 5 como seu binário de 3 dígitos equivalente 101 e o 3 como seu binário de 3 dígitos equivalente 011 para formar o número binário de 9 dígitos 110101011. 
O número hexadecimal FAD5 é convertido em binário simplesmente escrevendo-se o F como seu número 
binário equivalente de 4 dígitos 1111,0 A como seu binário de 4 dígitos equivalente 1010, o D como seu binário de 
4 dígitos equivalente 1101 e o 5 como seu binário de 4 dígitosequivalente 0101 para formar o número binário de 16 
dígitos 111110101 1010101. 
C.4 Convertendo do sistema binário, octal ou hexadecimal para o sistema decimal 
Por estarmos acostumados a trabalhar em decimal, freqüentemente é útil converter um número binário, octal ou hexadecimal em decimal, para ter uma noção do que o número “realmente” vale. Nossos diagramas na Seção C. 1 expressam os valores posicionais em decimais. Para converter um número em decimal, a partir de outra base, multiplique o equivalente decimal de cada dígito por seu valor posicional e some esses produtos. Por exemplo, o número binário 110101 é convertido no decimal 53 de acordo com o que mostra a Fig. C.8. 
Fig. C.8 Convertendo um número binário em decimal. 
Para converter o octal 7614 no decimal 3980, aplicamos a mesma técnica, usando dessa vez os valores posicionais octais apropriados, como mostra a Fig. C.9. 
Para converter o hexadecimal AD3B no decimal 44347, aplicamos a mesma técnica, usando dessa vez os 
valores posicionais hexadecimais apropriados, como mostra a Fig. CIO. 
Fig. C.10 Convertendo um número hexadecimal em decimal. 
Convertendo um núm 
ero binário em decimal 
1 
Valores posicionais: 
32 
16 
8 
4 
2 
1 
Valores dos algarismos: 
1 
1 
O 
1 
O 
1 
Produtos: 
1*32=32 
1*1616 
0*8=0 
1*44 
0*2=0 
1*11 
Soma: 
=32+16+0+ 
4+ 
0+153 
Convertendo um número octal em decimal 
1 
‘valores posicionais: 512 64 
8 
1 
Valores dos algarismos: 7 6 
1 
4 
Produtos: 7*5123584 6*64=384 
1*8=8 
4*14 
Soma: = 3584 + 384 + 8 + 4 = 
3980 
Fig. C.9 Convertendo um número octal em decimal. 
Convertendo um número hexadecimal em decimal 
Valores posicionais: 4096 256 
16 
1 
Valores dos algarismos: A D Produtos: A*4096=40960 D*256=3328 
3 3*16=48 
B B*1=11 
Soma: = 40960 + 3328 + 48 + 11 
= 44347 
1044 C++ COMO PROGRAMAR 
C.5 Convertendo do sistema decimal para o sistema binário, octal ou hexadecimal 
As conversões das seções anteriores são conseqüências naturais das convenções da notação posicional. Converter do ______ sistema decimal para o sistema binário, octal ou hexadecimal também segue essas convenções. 
Suponhaque desejamos converter o número decimal 57 para o sistema binário. Começamos escrevendo os valores posicionais das colunas, da direita para a esquerda, até alcançarmos a coluna cujo valor posicional seja maior do que o número decimal. Não precisamos daquela coluna, portanto a descartamos. Assim, escrevemos inicialmente: 
Valores posicionais: 64 32 16 8 4 2 1 
A seguir, descartamos a coluna com valor 64, restando: 
Valores posicionais: 32 16 8 4 2 1 
A seguir, trabalhamos a partir da coluna da extremidade esquerda em direção à direita. Dividimos 57 por 32 e observamos que há uma vez 32 em 57, com resto 25, portanto escrevemos 1 na coluna 32. Dividimos 25 por 16 e observamos que há uma vez 16 em 25, com resto 9 e escrevemos 1 na coluna 16. Dividimos 9 por 8 e observamos que há uma vez 8 em 9, com resto 1. As duas próximas colunas produzem quocientes com resto zero quando divididas por seus valores posicionais, portanto escrevemos Os nas colunas 4 e 2. Finalmente, dividindo 1 por 1 obtemos 1, portanto escrevemos 1 na coluna 1. Isso leva a: 
Valores posicionais: 32 16 8 4 2 1 
Valores dos algarismos: 1 1 1 O O 1 
e assim o valor decimal 57 é equivalente ao binário 111001. 
Para converter o número decimal 103 para o sistema octal, começamos escrevendo os valores das colunas até alcançarmos a coluna cujo valor posicional seja maior do que o número decimal. Não precisamos dessa coluna, portanto a descartamos. Assim, escrevemos inicialmente: 
Valores posicionais: 512 64 8 1 
A seguir, descartamos a coluna com valor 512, restando: 
Valores posicionais: 64 8 1 
A seguir, trabalhamos a partir da coluna da extremidade esquerda em direção à direita. Dividimos 103 por 64 
e observamos que há uma vez 64 em 103, com resto 39, portanto escrevemos 1 na coluna 64. Dividimos 39 por 
8 e observamos que há quatro vezes 8 em 39, com resto 7 e escrevemos 4 na coluna 8. Finalmente, dividimos 
7 por 1 e observamos que há sete vezes 1 em 7, não ficando resto algum, portanto escrevemos 7 na coluna 1. 
Isso leva a: 
Valores posicionais: 64 8 1 
Valores dos algarismos: 1 4 7 
e assim o valor decimal 103 é equivalente ao octal 147. 
Para converter o número decimal 375 para o sistema hexadecimal, começamos escrevendo os valores das colunas até alcançarmos a coluna cujo valor posicional seja maior do que o número decimal. Não precisamos dessa coluna, portanto a descartamos. Assim, escrevemos inicialmente: 
Valores posicionais: 4096 256 16 1 
APÊNDICE C - SISTEMAS DE NUMERAÇÃO 1045 
A seguir, descartamos a coluna com valor 4096, restando: 
Valores posicionais: 256 16 1 
A seguir, trabalhamos a partir da coluna da extremidade esquerda em direção à direita. Dividimos 375 por 256 e 
observamos que há uma vez 256 em 375, com resto 119, portanto escrevemos 1 na coluna 256. Dividimos 119 por 
16 e observamos que há sete vezes 16cm 119, com resto 7 e escrevemos 7 na coluna 16. Finalmente, dividimos 7 por 
1 e observamos que há sete vezes 1 em 7, não ficando resto algum, portanto escrevemos 7 na coluna 1. Isso leva a: 
Valores posicionais: 256 16 1 
Valores dos algarismos: 1 7 7 
e assim o valor decimal 375 é equivalente ao hexadecimal 177. 
C.6 Números binários negativos: notação em complemento de dois 
A análise deste apêndice concentrou-se nos números positivos. Nesta seção, explicamos como os computadores representam números negativos usando a notação em complemento de dois. Em primeiro lugar, explicamos como é formado o complemento de dois de um número binário e depois mostramos por que ele representa o valor negativo de um determinado número binário. 
Considere um equipamento com inteiros de 32 bits. Suponha 
int valor = 13; 
A representação em 32 bits do valor é 
00000000 00000000 00000000 00001101 
Para formar o negativo de valor, formamos inicialmente o complemento de um, aplicando o operador de complemento sobre bits de C++ (-), que também é chamado de operador NOT sobre bits: 
complementoDeUmDeValor = ‘valor; 
Internamente, valor é agora valor com cada um de seus bits invertidos - os uns se tornam zeros e os zeros se tornam uns, como segue: 
valor: 
00000000 00000000 00000000 00001101 
‘valor (i.e., complemento de um de valor): 
11111111 11111111 11111111 11110010 
Para formar o complemento de dois de valor, simplesmente adicionamos um ao complemento de um de valor. Assim, 
O complemento de dois de valor é: 
11111111 11111111 11111111 11110011 
Agora, se isso é realmente igual a -13, devemos ser capazes de adicionar o binário 13 a ele e obter o resultado 0. Vamos tentar fazer isso: 
00000000 00000000 00000000 00001101 
+ 11111111 11111111 11111111 11110011 
00000000 00000000 00000000 00000000 
O bit transportado (vai um) da coluna da extremidade esquerda é descartado e realmente obtemos zero como resultado. Se adicionássemos o complemento de um de um número ao próprio número, o resultado seria todo Is. O 
1046 C++ COMO PROGRAMAR 
segredo de obter um resultado todo em zeros é que o complemento de dois vale 1 a mais do que o complemento de um. A adição de 1 faz com que cada coluna resulte em zero, transportando o valor 1 para a próxima coluna. O valor é transportado para a esquerda, de uma coluna para outra, até que seja descartado do bit da extremidade esquerda e assim o número resultante fica todo consistindo em zeros. 
Na verdade, os computadores realizam uma subtração como 
x = a - valor; 
adicionando o complemento de dois de valor a a como se segue: 
x = a + (-‘valor + 1); 
Suponha que a é 27 e valor é 13, como antes. Se o complemento de dois de valor é realmente o negativo de valor, adicionar a a deve produzir o resultado 14. Vamos tentar fazer isso: 
a(i.e., 27) 00000000 00000000 00000000 00011011 
+(-valor + 1) + 11111111 11111111 11111111 11110011 
00000000 00000000 00000000 00001110 
que é realmente igual a 14. 
Resumo 
Quando escrevemos um inteiro como 19 ou 227 ou -63 em um programa, o número é consideradoautomaticamente como 
estando no sistema de numeração decimal (base 10). Os dígitos no sistema de numeração decimal são 0, 1, 2, 3, 4, 5, 6, 7, 8 
e 9. O menor dígito é O e o maior dígito é 9-um a menos que a base 10. 
• Internamente, os computadores usam o sistema de numeração binário (base 2). O sistema de numeração binário tem apenas dois dígitos, que são O e 1. Seu menor dígito é O e seu maior dígito é 1 - um a menos que a base 2. 
• O sistema de numeração octal (base 8) e o sistema de numeração hexadecimal (base 16) se tornaram populares principalmente porque são convenientes para exprimir números binários de uma forma abreviada. 
• Os dígitos do sistema de numeração octal variam de 0 a 7. 
• O sistema de numeração hexadecimal apresenta um problema porque exige dezesseis dígitos - o menor dígito com valor 0 e o maior dígito com um valor equivalente a 15 em decimal (um a menos que a base 16). Por convenção, usamos as letras A a F para representar os dígitos hexadecimais correspondentes aos valores decimais 10 a 15. 
• Cada sistema de numeração usa notação posicional - cada posição na qual um dígito é escrito tem um valor posicional diferente. 
• Um relacionamento importante que tanto o sistema de numeração octal quanto o sistema de numeração hexadecimal possuem com o sistema binário é que as bases dos sistemas octal e hexadecimal (8 e 16, respectivamente) são potências da base do sistema de numeração binário (base 2). 
• Para converter um número octal em um número binário, simplesmente substitua cada dígito octal pelo binário equivalente de três dígitos. 
• Para converter um número hexadecimal em um número binário, simplesmente substitua cada dígito hexadecimal pelo binário equivalente de quatro dígitos. 
• Por estarmos acostumados a trabalhar com números decimais, freqüentemente é útil converter um número binário, octal ou hexadecimal em decimal para ter uma melhor noção do que o número “realmente” vale. 
• Para converter um número de outra base para um número decimal, multiplique o equivalente decimal de cada dígito por seu valor posicional e some esses produtos. 
Os computadores representam números negativos usando a notação em complemento de dois. 
APËNDICE C - SISTEMAS DE NUMERAÇÃO 1047 
Para formar o negativo de um valor, forme inicialmente seu complemento de um aplicando o operador de complemento sobre bits de C++ (). Isso inverte os bits do valor. Para formar o complemento de dois de um valor, simplesmente adicione um ao complemento de um do valor. 
Terminologia 
base sistema de numeração hexadecimal 
conversões sistema de numeração na base 10 
dígito sistema de numeração na base 16 
notação em complemento de dois sistema de numeração na base 2 
notação em complemento de um sistema de numeração na base 8 
notação posicional sistema de numeração octal 
operador de complemento sobre bits valor do símbolo 
sistema de numeração binário valor negativo 
sistema de numeração decimal valor posicional 
Exercícios de auto-revisão 
C.1 As bases dos sistemas de numeração decimal, binário, octal e hexadecimal são ____________ ,__________ ,___________ e 
C.2 Em geral. as representações decimal, octal e hexadecimal de um determinado número binário contêm (mais/menos) dígitos do que o número binário. 
C.3 (Verdadeiro/Falso) Um motivo popular para o uso do sistema de numeração decimal é que ele forma uma notação conveniente para exprimir números binários de uma forma abreviada, simplesmente substituindo-se um dígito decimal por um grupo de quatro dígitos binários. 
C.4 A representação (octal/hexadecimalldecimal) de um valor binário muito grande é a mais concisa (das alternativas fornecidas). C.5 (Verdadeiro/Falso) O maior dígito em qualquer base vale um a mais que a base. 
C.6 (Verdadeiro/Falso) O menor dígito em qualquer base vale um a menos que a base. 
C.7 O valor posicional do dígito da extremidade direita de qualquer número nos sistemas binário, octal, decimal e hexadecimal é sempre 
C. O valor posicional do dígito à esquerda do dígito da extremidade direita nos sistemas binário, octal, decimal ou hexadecimal é sempre 
C.9 Preencha as lacunas na tabela a seguir com os valores posicionais das quatro posições da direita em cada um dos sistemas de numeração indicados. 
decimal 1000 100 10 1 
hexadecimal 256 
binário 
octal 512 8 
C.1O Converta o binário 110101011000 para os sistemas octal e hexadecimal. 
C.I 1 Converta o hexadecimal FACE para o sistema binário. 
C.12 Converta o octal 7316 para o sistema binário. 
C.13 Converta o hexadecimal 4FEC para o sistema octal. (Sugestão: em primeiro lugar, converta 4FEC para o sistema binário 
e depois converta aquele número binário para o sistema octal). 
C.14 Converta o binário 1101110 para o sistema decimal. 
C.15 Converta o octal 317 para o sistema decimal. 
C.16 Converta o hexadecimal EFD4 para o sistema decimal. 
C.17 Converta o decimal 177 para os sistemas binário, octal e hexadecimal. 
1048 C++ COMO PROGRAMAR 
C.18 Mostre a representação binária do decimal 417. Depois mostre os complementos de um e de dois de 417. 
C.19 Qual o resultado quando o complemento de um de um número é adicionado ao próprio número? 
Respostas aos exercícios de auto-revisão 
C.1 10. 2, 8, 16. 
C.2 Menos. 
C.3 Falso. 
C.4 1-lexadecimal. 
C.5 Falso o maior dígito em qualquer base vale um a menos que a base. 
C.6 Falso - o menor dígito em qualquer base é zero. 
C.7 1 (a base elevada à potência zero). 
C.8 A base do sistema de numeração. 
C.9 Preencha as lacunas na tabela a seguir com os valores posicionais das quatro posições da direita em cada um dos sistemas 
de numeração indicados. 
decimal 1000 100 10 
hexadecimal 4096 256 16 
binário 8 4 2 
octal 512 64 8 
C.1O Octal 6530; Hexadecimal D58. 
C.11 Binário 1111 1010 1100 1110. 
C.12 Binário 111 011 001 110. 
C.13 Binário0l00 111 111 101 100: 0cta147754. 
C.14 Decimal 2+4+8+32+64=110. 
C.15 Decimal 7+1*8+3*64=7+8+192=207. 
C.16 Decimal 4+13*16+15*256+14*4096=61396. 
C.l7 Decimal 177 
para binário: 
256 128 64 32 16 8 4 2 
128 64 32 16 8 4 2 
(1*128)+(0*64) +(1*32) + (1*16)+ (0*8) + (0*4)+(0*2)+(1*1) 
10110001 
para octal: 
512 64 8 1 
64 8 1 
(2*64)+ (6*8) +(1*1) 
261 
para hexadecimal: 
256 16 1 
16 1 
(11*16)+(1*1) 
(B*16) + (1*1) 
B1 
C.18 Binário: 
5122561286432168421 
256 128 64 32 16 8 4 2 1 
(1*256) + (1*128) + (0*64) + (1*32) + (0*16) + (0*8) + (0*4) + (0*2) + (1*1) 
110100001 
APÊNDICE C - SISTEMAS DE NUMERAÇÃO 1049 
Complemento de um: 001011110 
Complemento de dois: 001011111 
Verificação: o número binário original + seu complemento de dois 
110100001 
001011111 
000000000 
C.19 Zero. 
Exercícios 
C.20 Algumas pessoas argumentam que muitos de nossos cálculos seriam mais fáceis no sistema de numeração de base 12 porque 12 é divisível por muito mais números do que 10 (para base 10). Qual o menor dígito na base 12? Qual pode ser o maior símbolo para o dígito da base 12? Quais os valores posicionais das quatro posições da direita de qualquer número no sistema de numeração da base 12? 
C.21 Como o maior valor de símbolo nos sistemas de numcração analisados se relaciona com o valor posicional do primeiro dígito à esquerda do dígito mais à direita de qualquer número nesses sistemas de numeração? 
C.22 Complete a tabela de valores posicionais a seguir para as quatro posições da direita em cada um dos sistemas de numeração indicados: 
decimal 1000 100 10 1 
basefl . . . . 6 
base 13 . . . 169 . . 
base3 27 . . 
C.23 Converta o binário 100101111010 em octal e em hexadecimal. 
C.24 Converta o hexadecimal 3A7D em binário. 
C.25 Converta o hexadecimal 765F em octal. (Sugestão: converta inicialmente 765F em binário e depois converta aquele 
número binário em octal.) 
C.26 Converta o binário 1011110 em decimal. 
C.27 Converta o octal 426 em decimal. 
C.28 Converta o hexadecimal FFFF em decimal. 
C.29 Converta o decimal 299 em binário, em octal e em hexadecimal. 
C.30 Mostre a representação binária do decimal 779. Depois mostre os complementos de um e de dois de 779. 
C.31 Qual o resultado da soma do complemento de dois de um númerocom o próprio número? 
C.32 Mostre o complemento de dois do valor inteiro -1 em um equipamento com inteiros de 32 bits. 
Apêndice D 
Recursos sobre C++ na Internet e na Web 
Este apêndice contém uma lista de recursos valiosos para C++ na Internet e na World Wide Web. Incluem FAQs (respostas a perguntas feitas freqüentemente), tutoriais, como obter o ANSI/ISO C++ padrão, informações sobre compiladores C++ populares e como obter compiladores gratuitamente, demos, livros, tutoriais, ferramentas de software, artigos, entrevistas, conferências, jornais e revistas, cursos on-line, grupos de notícias e recursos para carreira profissional. 
Para obter mais informações sobre o American National Standards Institute (ANSI) ou para adquirir documentos padrão, visite o ANSI em http: //www. ansi . org/. 
Di Recursos 
http://www.progsource.com/index. htinl 
The Programmer’s Source é uma grande fonte de informações sobre muitas linguagens de programação, inclusive C++. Você encontrará listas de ferramentas, compiladores, software, livros e outros recursos para 
c++. 
http: //www. intranet. ca/-sshah/booklist. html#C++ 
The Programmer’s Book List tem uma seção de livros sobre C++ com mais de 30 títulos. 
http: //www. genitor, comi resources . htm 
O site Developer Resources tem links para compiladores C++, ferramentas úteis de C++, código- fonte do CY C++ Users Journal e publicações. 
http: //www.possibility. com/Cpp/CppCodingStandard.html 
O site The C+ + Coding Standard tem uma grande quantidade de informações sobre a linguagem de programação C++ bem como uma grande lista de recursos sobre C++ na Web. 
http: //help-site. com/cpp . htm). 
Help-site.com fornece links para recursos sobre C++ naWeb. 
http: //www. glenmccl . com/tutor. htm 
Este site é uma boa referência para usuários com conhecimento de CIC++. Os tópicos são acompanhados por 
explicações detalhadas e exemplos de código. 
http: //www . prograinmersheaven. com/zone3/cat353/index . htm 
Este site oferece uma vasta coleção de bibliotecas para C++. Estas bibliotecas estão disponíveis para download 
gratuito. 
http: //www . prograinmersheaven. com/zone3/catl55/index . htm 
Este site oferece ferramentas e bibliotecas para CIC++. 
http: //w. programmersheaven. com/wwwboard/board3/wwwboard. asp 
Este quadro de mensagens permite aos usuários divulgar perguntas sobre programação em C++. Estas bibliotecas estão disponíveis para download gratuito. 
APÊNDICE D - RECURSOS SOBRE C++ NA INTERNET E NA WEB 1051 
http: //www hal9k. com/ cug/ 
Este site oferece recursos, jornais, shareware,freeware, etc. 
http: //developer earthweb. com/directories/pages/dir. c . developmenttools htm Um site popular na Web para programadores, Developer.com oferece uma ampla lista de recursos para programadores usando C e C++. 
http: //www.devx.com 
DevX é um site abrangente com recursos para programadores. A seção oferece as últimas novidades, ferramentas e técnicas para diversas linguagens de programação. A seção C++ zone do site é dedicada a C++. 
D.2 Tutoriais 
http: //info desy . de/gna/html/cc/index html 
Este tutorial Introduction lo Object-Orientred Programming Using C++ está disponível para download ou você pode se registrar em um curso baseado na Web. Verifique os livros recomendados sobre programação orientada a objetos e a linguagem de programação C++. 
http: //uu-gna.mit. edu: 8001/uu-gna/text/cc/Tutorial/tutorial . html 
Este tutorial Introduction to Object-Oriented Programming Using C++ é dividido em 10 capítulos, cada um 
com um conjunto de exercícios e soluções para os exercícios. 
http: //www. icce. rug . nl/docs/cplusplus/cplusplus . html 
Este tutorial, escrito por um professor universitário, foi projetado para programadores de C que querem apreender C++. 
http: //www.rdw. tec.mn.us/ 
O Red Wing/Winona Technical Coliege oferece cursos de C++ on-line valendo créditos. 
http: //www. zdu. com/zdu/catalog/progranuning . htm 
A ZD Net University oferece vários cursos on-line relacionados com a linguagem de programação C++. 
http: //library. advanced. org/3074/ 
Este tutorial foi projetado para programadores de Pascal que querem aprender C++. 
ftp: //rtfm.mit. edu/pub/usenet/news . answers/C-faq/learn-c-cpp-today 
Este site tem uma lista de tutoriais sobre C++. Também contém informações sobre vários compiladores C++. 
http: //www. icce . rug . nh/docs/cplusplus/cplusplus . htm 
Um site para usuários que já conhecem C e querem aprender C++. 
http: //www. cprogranuning. com/tutorial/html 
Este site inclui um tutorial passo a passo que inclui exemplos de código. 
http://www.progranunersheaven.com/zone3/cat34/index. htm 
Este site contém uma lista de assuntos de tutoriais. Os níveis dos tutoriais variam desde principiantes até 
especialistas. 
D.3 FAQs 
http: //reality. sgi . com/austern/std-c++/faq . html 
Este é um site de FAQs dedicado a perguntas sobre C++ padrão ANSI/ISO, o projeto da linguagem de programação C++ e às últimas mudanças na linguagem. 
http: //www. trtnphrst. demon . co . uk/cpplibsl . html 
Este é um FAQ sobre as bibliotecas de C++. Você encontrará uma extensa lista de respostas às perguntas feitas 
freqtientemente sobre as bibliotecas padrão de C++. 
1052 C++ COMO PROGRAMAR 
http: //pneuma phys ualberta. ca/-.burris/cpp htm 
O The Internet Link Exchange é um Outro grande recurso para informações sobre C++. Este site tem links para FAQs relacionados a comp. lang. c++ e as bibliotecas padrão de C++. 
http: //www.math.uio.no/nett/faq/C-faq/faq.html 
A lista comp. lang. e de perguntas feitas freqüentemente (FAQs) e respostas. 
http: //lglwww. epfl ch/’wo1f/c std. htm]. 
A lista de FAQs sobre o padrão ANSI/ISO para a linguagem de programação C. 
http: //www. cerfnet. com/-mpcline/C++-FAQs-Lite/ 
Este site tem muitas FAQs divididas em 35 categorias. 
http: //www. faqs org/faqs/by-newsgroup/comp/comp. lang. html 
Este site consiste em uma série de links para FAQs e tutoriais reunidos do grupo de notícias Comp Lang C++. 
http: //www. cerfnet. com/-mpc1ine/C++-FAQs-Lite/ 
Este é um site de FAQ com uma ampla gama de tópicos. Cada tópico inclui diversas perguntas com respostas. 
http: //www. eskimo. coin/-scs/C-faq/top html 
Esta lista de FAQ contém tópicos tais como ponteiros, alocação de memória e strings. 
DA Visual C-i-+ 
http://ehesworth.com/pv/languages/c/visualcpptutorial. htin 
Este é um bom tutorial para principiantes que estejam aprendendo o Microsoft Visual C++. O tutorial dá ao 
usuário uma visão geral sucinta de C+÷. 
D.5 comp.lang.c++ 
http: //weblab. research att. com/phoaks/comp/lang/c++/ resourcesO html UAU! Este site é um tremendo recurso de informações relacionadas com comp. lang. c++. O título da página, People Helping OneAnotherKnow Stuff, resume tudo que é este site. Você encontrará links para mais de 40 recursos adicionais de informações sobre C++. 
http: //www. r2m. com/windev/cpp-compiler html 
Este contém links para muitos sites relacionados com C++. 
http: //home istar. ca/-.stepanv/ 
Este site tem muitos links para sites com artigos e informações relacionados com a programação C++. Tópicos listados neste site incluem gráficos orientados a objetos, o padrão ANSI C++, a biblioteca padrão de gabaritos (STL), recursos sobre MFC e tutoriais. 
http: //kom. net/-’dbrick/newspage/cornp. lang. c++ html 
Visite este site para se conectar a grupos de notícias relacionados à hierarquia eomp lang c++. 
http: //www. austinlinks com/CPlusPlus/ 
O site da Quadralay Corporation tem links para recursos sobre C++, incluindo Visual C++/bibliotecas MFC, 
informações sobre programação em C++, recursos para carreiras profissional em C÷+ e uma lista de tutoriais 
e outras ferramentas on-line para ajudá-lo a aprender C++. 
http: /1db. csie ncu. edu. tw/-kant c/C/chapter2 21 . html 
Este site da Web tem a lista das funções da biblioteca padrão ANSI C. 
http: //wwwcnl . cem. ch/asd/geant/geant4yublic/codingstandards/ 
coding/coding2 . html 
Um recurso excelente e extenso sobre informações acerca do padrão C++ 
APÊNDICE D - RECURSOS SOBRE C++ NA INTERNET E NA WEB 1053http: //ibd. ar. com/ger/comp. lang. . html 
O Green Eggs Report lista mais de 100 URLs dentro de comp. lang . C++. 
http: //www. ts umu . se/-maxell/C++/ 
Este site fornece exemplos de código para algumas das classes C++. 
http: //www. quadralay. com/CPlusPlus/ 
Este é um grande recurso para informações sobre programação C++ , aprendizado de C++, carreiras em C++ e outras informações relacionadas com C++. 
http: //www. research. att. comi bs/homepage . htznl 
Esta é a homepage de Bjarne Stroutrup, criador da linguagem de programação C++. Ele fornece uma lista de recursos C++, FAQs e outras informações úteis sobre C++. 
http: //www. cygnus . coxn/misc/wp/draft/index . htxnl 
Este site tem a “minuta de trabalho” do padrão ANSI C++ em formato HTML (dezembro de 1996). 
http: //www . austinlinks . com/cPlusPlus/ 
Este site tem uma lista de recursos C++ incluindo livros sugeridos, recursos para carreira profissional, informações sobre a linguagem de programação C++ e links para sites com listas de recursos C++. 
ftp: //research. att. com/dist/c++std/WP/CD2/ 
Este site tem a minuta atual do padrão ANSI/ISO para C++. 
http: //ai kaist. ac . kr/ -ymkim/Program/c++ . html 
Este site oferece tutoriais, bibliotecas, compiladores populares, FAQs e grupos de notícias. 
http: //www. cyberdiem. com/vin/learn . html 
Learn C/C++ Today é o título deste site, que oferece diversos tutoriais avançados sobre CIC++. 
http: //www. trumphurst. com/cpplibsl . html 
A The C++ Libraries FAQ é compilada por programadores profissionais para o uso e benefício de outros programadores de C++. A biblioteca é atualizada regularmente e é uma boa fonte de informações atualizadas. 
http: //www. experts-exchange . com/comp/lang/cplusplus/ 
The Experts Exchange é um recurso gratuito para profissionais hi gh-tech que desejem compartilhar informações com seus colegas. Sócios podem afixar perguntas e respostas. 
http: //www. execpc. com/ -ht/vc . htm 
Este site é uma compilação de links sobre programação em C++ que incluem sites de informações genéricas, tutoriais, revistas e bibliotecas. 
http: //cplus . about. com/compute/cplus/ 
Este é o site About.com para as linguagens de programação CIC++. Você encontrará tutoriais, freeware/ shareware, dicionários, empregos, revistas e muitos outros itens relacionados. 
http: //pent2l infosys . tuwien . ac. at/cetus/ 
oocplusplus . htinl#oocylusylusgeneralnewsgroups 
Neste site você encontrará uma explicação geral sobre C++. Este site contém grupos de notícias. 
news : comp. lang. c++ 
Este é um grupo de notícias dedicado a questões sobre a linguagem orientada a objetos C++. 
http: //cuiwww. unige . ch/OSG/Vitek/Compilers/YearB6/msg00046 . html “O padrão C em máquinas segmentadas”. 
http: //www. csci . csusb . edu/dick/c++std/ 
Este site tem links para a minuta do padrão C++ ANSI/ISO e o grupo Usenet comp. std. c++ que fornece novas informações sobre o padrão. 
1054 C++ COMO PROGRAMAR 
news : comp. lang. c++ . moderated 
Este é um grupo de notícias mais voltado a aspectos técnicos dedicado à linguagem C++. 
http: / /www . progsource . com/index. htxnl 
The Programmer’s Source é um grande recurso de informações sobre muitas linguagens de programação inclusive C++. Você encontrará listas de ferramentas, compiladores, software, 1ivros e outros recursos para C++. A lista de compiladores está organizada por plataforma. 
http: //www. cygnus . com/misc/gnu-win32/ 
O ambiente de desenvolvimento GNU está disponível isento de custo no site Cygnus na Web. 
http: //www. remcomp. com/lcc-win32/ 
Você pode fazer download do compilador LCC-Win32 para Windows 95/NT, sem custo, deste site da Web. 
http: //www . microsoft. com/visualc/ 
A homepage do Microsoft Visual C++ fornece informações sobre produtos, overviews, materiais suplementares e informações sobre como encomendar o compilador Visual C++. 
http://www.com/products/languages/watccpl. html 
Notícias e informações sobre o produto para o Watcom C/C++ versão 11.0 da Powersoft. Não pode ser feito download do compilador a partir deste site da Web. São fornecidas informações para aquisição. 
http://netserv.bor1and.com/bor1andcpp/cppcomp/turbocpp.htm1 
O site na Web para o compilador Borland Turbo C++ Visual Edition para Windows. 
http: //www. symantec. com/scpp/fs scpp72 95. html 
Symantec C++ 7.5 para Windows 95 e Windows NT. 
http: //www .metrowerks . com/products/ 
Metrowerks CodeWarrior para Macintosh ou Windows. 
http: //www. faqs . org/faqs/by-newsgroup/comp/comp. compilers . html 
Este é um site que criou uma lista de FAQs gerados dentro do grupo de notícias comp. compilers. 
http: //www.ncf. carleton. ca/%7Ebg283/ 
Este é um compilador C++ para DOS chamado de Miracle C compiler. O compilador é grátis para download, mas o código-fonte não fica disponível enquanto você não pagar a taxa de registro. 
http: //www . borland. com/bcppbuilder/ 
Este é um link para o Borland C++ Builder5.5. Uma versão de linha de comando grátis está disponível para download. 
http: //www. compilers . net/ 
Compilers.net é um site projetado para ajudá-lo a encontrar compiladores. 
http: //sunset . backbone . olemiss . edu/%7Ebobcook/eC/ 
Este compilador C++ é projetado para usuários principiantes em C++ que queiram passar de Pascal para C++. 
http: //developer . intel . com/vtune/conipilers/cpp/ 
O copilador Intel C++. Plataformas suportadas são Windows 98, NT e 2000. 
http: //www. kai . com/Çplusplus/index . htxnJ. 
O compilador Kai C++ está disponível gratuitamente para um período de demonstração de 30 dias. 
0.6 Compiladores 
APÊNDICE D - RECURSOS SOBRE NA INTERNET E NA WEB 1055 
0.7 Ferramentas de desenvolvimento 
http: //www. quintessoft. comi 
A Quintessoft Engineering, mc. oferece o Code Navigator para C++, uma ferramenta de desenvolvimento em C++ para Windows 951NT. Você encontrará informações sobre o produto, comentários dos usuários, downloads gratuitos de edições de demonstração e informações de preços para o produto. 
D.8 Biblioteca padrão de gabaritos 
Tutoriais 
http: //www. cs brown . edu/people/jak/prograinming/stl-tutorial/ 
tutorial html 
Este tutorial sobre a STL está organizado em exemplos, filosofia, componentes e estendendo a STL. Você 
encontrará exemplos de código usando os componentes da STL, explicações e diagramas úteis. 
http: //web. ftech. net/honeyg/artic1es/eff stl htm 
Este tutorial sobre a STL oferece informações sobre os componentes da STL, contêineres, adaptadores de 
stream e iteradores, transformação e seleção de valores, filtragem e transformação de valores, e objetos. 
http: //www . xraylith wisc edu/-khan/software/stl/osexaniples/ 
examples htinl 
Este é um site útil para pessoas que estejam ainda aprendendo sobre a STL. Você encontrará uma introdução 
à STL e exemplos do ObjectSpace STL Tool Kit. 
Referências 
http: //www. sgi . com/Technology/STL/other resources . html 
Este site tem uma lista de muitos sites da Web relacionados com a STL e uma lista de livros sobre a STL 
recomendados. 
http: //www. cs . rpi edu/proects/STL/st1/st1 . html 
Esta é a homepage do Standard Template Library Online Reference do Rensselaer Polytechnic Tnstitute. Você encontrará explicações detalhadas sobre a STL, bem como links para outros recursos úteis para informações sobre a STL. 
http: //www. sgi com/Technology/STL/ 
O Silicon Graphics Standard Template Library Programmer’s Guide é um recurso útil para informações sobre a STL. Você pode fazer download da STL deste site e encontrar as informações mais recentes, documentação de projeto e links para outros recursos para a STL. 
http: //www. dinkumware comirefcpp . html 
Este site contém informação útil sobre a biblioteca C++ do padrão ANSI/ISO e contém extensa informação 
sobre a biblioteca padrão de gabaritos (STL). 
http: //www. roguewave com/products/xplatfortn/stdlib/ 
A página da Web da Rogue Wave Software’s Standard C++ Library. Você pode fazer download de artigos 
relacionados com a versão deles da biblioteca padrão de C++. 
FAQs 
ftp: //butler .hpl .hp. com/stl/stl. faq 
Este site de FTP é uma folhade FAQ para a STL mantida por Marian Corcoran, membro do comitê ANSI e 
uma especialista em C++. 
1056 C++ COMO PROGRAMAR 
Artigos, livros e entrevistas 
http: //www. sgi com/Technology/STL/other resources html 
Este site relaciona muitos sites da Web relacionados com a STL e uma pequena lista de livros sobre a STL 
recomendados, 
http://www.byte.com/art/951O/sec12/art3. htzn 
O site da Bvte Magazine tem uma cópia de um artigo sobre a STL escrito por Alexander Stepanov. Stepanov, um dos criadores da biblioteca padrão de gabaritos. oferece informações sobre o uso da STL em programação genérica. 
http: //www. sgi com/Technology/STL/drdobbs-interview.html 
Uma entrevista com Alexander Stepanov que tem algumas informações interessantes sobre a criação da biblioteca padrão de gabaritos. Stepanov fala sobre como a STL foi conceituada, programação genérica, o acrônimo “STL” e mais. 
Padrão ANSI/ISO C++ 
http://www.ansi.org/ 
Você pode comprar uma cópia do documento padrão de C÷+ neste site. 
Software 
http: //www. cs rpi . edu/musser/stJ. html 
O site RPI STL inclui informação sobre como a STL difere de outras bibliotecas de C++ e como compilar programas que usam a STL, lista dos principais arquivos de #include da STL, exemplos de programas que usam a STL, classes contêíneres da STL e categorias de iteradores da STL. Ele também oferece uma lista de compiladores compatíveis com a STL, sites de FTP para código-fonte STL e materiais relacionados. 
http://www.inathcs.sisu.edu/facu1ty/horstman/safest1.htm1 
Faça download do SAFESTL.ZIP. uma ferramenta projetada para encontrar erros em programas que usam a 
STL. 
http://www.objectspace.com/jgh 
Object Space oferece informação sobre o porte de C++ para Java. Você pode fazer download gratuito da classe portável Standards<ToolKit> deles. Os principais destaques do toolkit são contêineres, iteradores, algoritmos, alocadores, strings e exceções. 
http: //www. cs rpi edu/-wiseb/stl-borland htnil 
“Using the Standard Template Library with Borland C++ Este site é uma referência útil para pessoas que 
usam o compilador Borland C++. O autor tem seções sobre advertências e incompatibilidades. 
http: //msdn nicrosoft. com/visualc/ 
Esta é a homepage do Microsofi Visual C+ +. Aqui você pode encontrar as notícias mais recentes sobre o 
Visual C++, atualizações, recursos técnicos, exemplos e downloads. 
http: //www . borland. com/bcppbuilder/ 
Esta é a homepage do Borland C++ Builder. Aqui você pode encontrar uma variedade de recursos para C++, incluindo diversos grupos de notícias sobre C++, informações sobre as mais recentes melhorias do produto, FAQs e muitos outros recursos para programadores que usam o C++ Builder. 
Bibliografia 
(A192) Allison, C., “Text Processing 1,” The C Users Journal, Vol. 10, No. 10, October 1992, pp. 23-28. 
(A192a) Allison, C., “Text Processing II,” The C Users Journal, Vol. 10, No. 12, December 1992, pp. 73-77. 
(A193) Allison, C., “Code Capsules: A C++ Date Class, Part 1,” The C Users Journal, Vol. 11, No. 2, February 1993, pp. 123-131. 
(A194) Allison, C., “Conversions and Casts,” The C/C++ (Jsers Journal, Vol. 12, No. 9, September 1994, pp. 
67-85. 
(Am95) Almarode, J., “Object Security,” Smalltalk Report, Vol. 5, No. 3 November/December 1995, pp. 15-17. (A n90) ANSI, American National Standardforlnformation Systems-Programming Language C (ANSI Document 
lar ANSI/ISO 9899: 1990), New York, NY: American National Standards Institute, 1990. 
iue (An94) American National Standard, Programming Language C++. (A aprovação e o trabalho técnico de de- 
de senvolvimento estão sendo conduzidos pelo Accredited Standards Committee X3, Information Technology 
e seu Technical Committee X3J16, Programming Language C++, respectivamente. Para maiores deta lhes entre em contato com X3 Secretariat, 1250 Eye Street, NW, Washington, DC 20005, EUA.) 
(An92) Anderson, A. E., and W. J. Heinze, C++ Programming and Fundamental Concepts, Englewood Cliffs, 
na NJ: Prentice Hali, 1992. 
(Ba92) Baker, L., C Mathematical Function Handbook, New York, NY: McGraw HilI, 1992. 
(Ba93) Bar-David, T., Object-Oriented Design for C++, Englewood Cliffs, NJ: Prentice Hail, 1993. 
(Be94) Beck, K., “Birds, Bees, and Browsers-Obvious Sources of Objects,” The Smalltalk Report, Vol. 3, No. 8 
June l994,p. 13. 
(Be93a) Becker, P., Conversion Confusion, C++ Report, October 1993, pp. 26-28. 
(Be93) Becker, P., “Shrinking the Big Switch Statement,” Windows Tech Journal, Vol. 2, No. 5, May 1993, pp. 
26-33. 
ue (Bd93) Berard, E. V., Essays on Object Oriented Software Engineering: Volume!, Englewood Cliffs, NJ: Prentice 
Hail, 1992. 
(Bi95) Binder, R. V., “State-Based Testing,” Object Magazine, Vol. 5, No. 4, August 1995, pp. 75-78. 
(Bi95a) Binder, R. V., “State-Based Testing: Sneak Paths and Conditional Transitions,” Object Magazine, Vol. 5, 
No. 6, October 1995, pp. 87-89. 
(B192) Blum,A., NeuralNetworksin C++:An Object-OrientedFrameworkforBuilding ConnectionistSystems, 
New York, NY: John Wiley & Sons, 1992. 
-+ (Bo91) Booch, G., Object-Oriented Design with Applications, Redwood City, CA: The Benjamin/Cummings 
Publishing Company, mc., 1991. 
(Bo94) Booch, G., Object-Oriented Analysis and Design, Second Edition, Reading, MA: Addison-Wesley Publishing Company, 1994. 
(Bo96) Booch, G., Object Solutions, Reading, MA: BenjaminlCummings, 1996. 
(Ca92) Cargill, T., Programming Style, Reading, MA: Addison-Wesley Publishing Company, 1992. 
(Ca95) Carroli, M. D., and M. A. Ellis, Designing and Coding Reusable C++, Reading, MA: Addison-Wesley Publishing Company, 1995. 
(Co95) Coplien, J. O., and D. C. Schmidt, Pattern Languages of Program Design, Reading, MA: AddisonWesley Publishing Company, 1995. 
1058 BIBLIOGRAFIA 
(C++98) ANSI/ISO/IEC: International Standard: Programming Languages-C++. 1SO/IEC 14882:1998(E). Publicado pelo the American Nationai Standards Institute, New York, NY: 1998. 
(De90) Deitei, H. M., Operating Systems, Second Edition, Reading, MA: Addison-Wesley, 1990. 
(DeOO) Deitei, H. M., and P. J. Deitei, Java How to Program, Third Edition, Upper Saddle River, NJ: Prentice Hali, 2000. 
(DeOOa) Deitei, H. M., and P. J. Deitei, The Java Multimedia Cber Classroom, Third Edition, Upper Saddie River, NJ: Prentice Hali, 2000. 
(DeOi) Deitei, H. M., and P. J. Deitei, CHow to Program (Third Edition), Upper Saddle River, NJ: Prentice Haii, 2000. 
(Du9 1) Duncan, R., “inside C++: Friend and Virtual Functions, and Muitiple Inheritance,” PC Magazine, Vol. 10, No. 17, October 15, 1991, pp. 417-420. 
(Ei90) Eliis, M. A., and B. Stroustrup, TheAnnotated C++ Refrrence Manual, Reading, MA: Addison-Wesley, i990. 
(Em92) Embley, D. W.; B. D. Kurtz; and S. N. Woodfield, Object-Oriented SystemsAnalysis, Englewood Ciiffs, NJ: Yourdon Press, 1992. 
(En90) Entsminger, G., The Tao of Objects: A Beginner’s Guide to Object-Oriented Programming, Redwood City, CA: M&T Books, 1990. 
(F193) Fiamig, B., Practi cal Data Structures in C++, New York, NY: John Wiiey & Sons, 1993. 
(Ga95) Gamma, E,; R. Heim; R. Johnson; and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Reading, MA: Addison-Wesiey Pubiishing Company, 1995. 
(Ge89) Gehani, N., and W. D. Roome, The Concurrent C Programming Language, Summit, NJ: Silicon Press, 1989. 
(Gi92) Giancoia, A., and L. Baker, “Bit Arrays with C+÷,” The C Users Journal, Voi. 10, No. 7, Juiy, 1992, pp. 2 1-26. 
(G195) Giass, G., and B. Schuchert, The STL <Primer>, Upper Saddle River, NJ: Prentice Hali PTR, i995. 
(Go95) Gooch, T., “Obscure C++,” Inside Microsofi Visual C++, Voi. 6, No. ii, November 1995, pp. 13-15. 
(Ha90) Hansen, T. L., The C++ AnswerBook, Reading, MA: Addison-Wesiey, 1990. 
(He97) Henricson, M., and E. Nyquist, Industrial Strength C++: Rules and Recommendations, Upper Saddle River, NJ: Prentice Haii, 1997. 
(Ja93) Jacobson, 1., “Is Object Technoiogy Software’s Industrial Piatform?” !EEE Software Magazine, Vol, 10, No. 1, January 1993, pp. 24-30. 
(Ja89) Jaeschke, R., Portability and the C Language, Indianapolis, IN: Hayden Books, 1989.(Ke88) Kernighan, B. W., and D. M. Ritchie, The CProgramming Language (Second Edition), Englewood Ciiffs, NJ: Prentice Haii, 1988. 
(Kn92) Knight, A., “Encapsulation and Information Hiding’ The Smalltalk Report, Vol. i, No. 8, June 1992, pp. 
19-20. 
(Ko90) Koenig, A., and B. Stroustrup, “Exception Handling for C++ (revisado),” Proceedings ofthe USENIX C++ Conference, San Francisco, CA, Aprii 1990. 
(Ko91) Koenig, A., “What is C++ Anyway?” Journal of Object-Oriented Prograinming, April/May 1991, pp. 
48-52. 
(Ko94) Koenig, A., Impiicit Base Ciass Conversions,” C++ Report, Vol. 6, No. 5, June 1994, pp. 18-19. 
(Ko97) Koenig, A., and B. Moo, Ruminations on C++, Reading, MA: Addison-Wesiey, 1997. 
(Kr9 1) Kruse, R. L.; B. P. Leung; and C. L. Tondo, Data Structures and Program Design in C, Englewood Ciiffs, NJ: Prentice Haii, 1991. 
(Le92) Lejter, M.; 5. Meyers; and 5. P. Reiss, “Support for Maintaining Object-Oriented Programs,” ÍEEE Transactions on Software Engineering, Voi. 18, No. 12, December 1992, pp. 1045-1052. 
(Li91) Lippman, 5. B., C++ Primer (Second Edition), Reading, MA: Addison-Wesiey Publishing Company, 1991. 
(Lo93) Lorenz, M., Object-Oriented Software Deveiopment: A Practical Guide, Englewood Ciiffs, NJ: Prentice Hail, 1993. 
(Lo94) Lorenz, M., “A BriefLook at Inheritance Metrics,” The Smalltalk Report, Vol. 3, No. 8, June 1994, pp. 1, 
4-5. 
(Ma93) Martin, J.. Principies of Object-Oriented Analysis and Design, Englewood Ciiffs, NJ: Prentice Hali, 1993. 
BIBLIOGRAFIA 1059 
(Ma95) Martin, R. C., Designing Object-Oriented C++ Applications Using the Booch Method, Englewood Cliffs, NJ: Prentice 1-lali, 1995. 
(Ma93a) Matsche, J. J., “Object-Oriented Programming in Standard C,” Object Magazine, Vol. 2, No. 5, January/ February 1993, pp. 7 1-74. 
(Mc94) McCabe, T. J., and Á. H. Watson, “Combining Comprehension and Testing in Object-Oriented Development,” Object Magazine, Vol. 4, No. 1, May/April 1994, pp. 63-66. 
(Me88) Meyer, B., Object-OrientedSoftware Construction, C. A. R. Hoare Series Editor, Englewood Cliffs, NJ: 
Prentice Hali, 1988. 
(Me92) Meyer, B., Advances in Object-Oriented Software Engineering, Editado por D. Mandrioli e B. Meyer, Englewood Cliffs, NJ: Prentice Hail, 1992. 
(Me92a) Meyer, B., Eiffel: The Language, Englewood Cliffs, NJ: Prentice Hail, 1992. 
(Me92b) Meyers, S., Effective C++: 50 Specific Ways to Improve Your Programs and Designs, Reading, MA: 
Addison-Wesley Publishing Company, 1992. 
(Me95) Meyers, S., More Effective C++. 35 New Ways to Improve Your Programs and Designs, Reading, MÁ: 
Addison-Wesley Publishing Company, 1995. 
(Me95a) Meyers, 5., “Mastering User-Defined Conversion Functions,” C/C+÷ Users Journal, Vol. 13, No. 8, Augusi 1995, pp. 57-63. 
(Mu93) Murray, R., C++ Strategies and Tactics, Reading, MA: Addison-Wesley Publishing Company, 1993. 
(Mu94) Musser, D. R., and A. A. Stepanov, “Algorithm-Oriented Generic Libraries,” Software Practice and Experience, Vol. 24, No. 7, July 1994. 
(Mu96) Musser, D. R., and A. Saini, STL Tutorial and Reference Guide: C++ Programming with the Standard Template Librarv, Reading, MA: Addison-Wesley Publishing Company, 1996. 
(Ne95) Nelson, M., C++ Programmer’s Guide to the Standard Template Library, Foster City, CÁ: Programmers Press, 1995. 
(Ne920) Nerson, J. M., “Applying Object-Oriented Analysis and Design,” Communications ofthe ACM, Vol. 35, No. 9, September 1992, pp. 63-74. 
(Ni92) Nierstrasz, O.; S. Gibbs; and D. Tsichritzis, “Component-Oriented Software Development,” Communications oftheACM, Vol. 35, No. 9, September 1992, pp. 160-165. 
(P190) Pinson, L. J., and R. S. Wiener, Applications of Object-Oriented Programming, Reading, MA: AddisonWesley, 1990. 
(Pi93) Pittman, M., “Lessons Learned in Managing Object-Oriented Development,” IEEE Software Magazine, Vol. lO, No. 1, January 1993, pp. 43-53. 
(P192) Plauger, P. J., The Standard C Library, Englewood Cliffs, NJ: Prentice Hail, 1992. 
(P193) Plauger, D., “Making C++ Safe for Threads,” The C Users Journal, Vol. 11, No. 2, February 1993, pp. 
58-62. 
(Po97) PohI, 1., C+ + Djstilled: A Concise ANSI/ISO Reference and Siyle Guide, Reading, MÁ: Addison-Wesley, 1997. 
(Po97a) PohI, 1., Object-Oriented Programming Using C++, Second Edition, Reading, MÁ: Áddison-Wesley Publishing Company, 1997. 
(Pr92) Press, W. H., et ai, Numerical Recipies in C, Second Edition, Cambridge, MÁ: Cambridge University Press, 1992. 
(Pr93) Prieto-Diaz, R., “Status Report: Software Reusability,” IEEE Software, Vol. 10, No. 3, May 1993, pp. 61- 
66. 
(Pr92) Prince, T., “Tuning Up Math Functions,” The C Users Journal, Vol. 10, No. 12, December 1992. 
(Pr95) Prosise, J., “Wake Up and Smell the MFC: Using the Visual C++ Classes and Ápplications Framework,” Microsoft Systems Journal, Vol. lO, No. 6, June 1995, pp. 17-34. 
(Ra90) Rabinowitz, H., and C. Schaap, Portable C, Englewood Cliffs, NJ: Prentice Hali, 1990. 
(Re9 1) Reed, D. R., “Moving from C to C++,” Object Magazine, Vol. 1, No. 3, September/October 1991, pp. 46- 
60. 
(Ri78) Ritchie. D. M.: S. C. Johnson: M. E. Lesk: and B. W. Kernighan. “UNIX Time-Sharing System: The C Programming Language,” The Beli System Technical Journal, Vol. 57, No. 6, Part 2, JuIy-Áugust 1978, 
pp. 1991-2019. 
(Ri84) Ritchie, D. M., “The UNIX System: The Evolution of the UNIX Time-Sharing System,” AT&T Beil Laboratories Technicaliournal, Vol. 63, No. 8, Part 2, October 1984, pp. 1577-1593. 
1060 BIBLIOGRAFIA 
(Ro84) Rosler, L., “The UNIX System: The Evolution of C-Past and Future,” AT&T Laboratories Technical Journal, Vol. 63, No. 8, Part 2, October 1984, pp. 1685-1699. 
(Ro00) Robson, R., Using the STL: The C++ Standard Template Librarv, SpringerVerlag, 2000. 
(Ru92) Rubin, K. S., and A. Goldberg, “Object BehaviorAnalysis,” Communications of theACM, Vol. 35, No. 9, September 1992, pp. 48-62. 
(Ru91) Rumbaugh, J.; M. Blaha; W. Premerlani; F. Eddy; and W. Lorensen, Ohject-Oriented Modeling and Design, Englewood Cliffs, NJ: Prentice Hail, 1991. 
(Sa93) Saks, D., “Inheritance,” The C Users Journal, May 1993, pp. 8 1-89. 
(Sc99) Schildt, H., STL Programmingfrom the Ground Up, Osborne McGraw-HiIl, 1999. 
(Se92) Sedgwick, R., Algorithms in C++, Reading, MA: Addison-Wesley, 1992. 
(Se92a) Sessions, R., Class Construction in C and C++, Englewood Cliffs, NJ: Prentice Hali, 1992. 
(Sk93) SkelIy, C., “Pointer Power in C and C++,” The C Users Journal, Vol. li, No. 2, February 1993, pp. 93- 
98. 
(Sm92) Smaer, S., and S. J. Melior, Object Lifecycles: Modeling the World in States, Englewood Cliffs, NJ: 
Yourdon Press, 1992. 
(Sm90) Smith, J. D.. Reusabilitv & Software Construction in C & C++, New York, NY: John Wiley & Sons, 1990. 
(Sn93) Snyder, A., “The Essence of Objects: Concepts and Terms,” IEEE Software Magazine, Vol. 10, No. 1, January 1993, pp. 31-42. 
(St95) Stepanov, A., and M. Lee, “The Standard Template Library,” Internet Distribution, Published at ftp: II butler.hpl.hp.com/stl, July 7, 1995. 
(St84) Stroustrup, B., “The UNIX System: Data Abstraction in C,”AT&TBeII Laboratories Technicaliournal, Vol. 63, No. 8, Part 2, October 1984, pp. 1701-1732. 
(St88) Stroustrup, B., “What is Object-Oriented Programming?” IEEE Software, Vol. 5, No. 3, May 1988, pp. 
10-20. 
(St88a) Stroustrup, B., “Parameterized Types for C++, Proceedings ofthe USENÍX C++ Conference, Denver, CO, October 1988. 
(St9 1) Stroustrup, B., The C+ + Programming Language (Second Edition), Reading, MA: Addison-Wesley Series in Computer Science, 1991. 
(St93) Stroustrup, B., “Why Consider Language Extensions?: Maintaining a Delicate Balance:’ C++ Report, September 1993, pp. 44-51. 
(St94) Stroustrup, B., “Making a vector Fit for a Standard,” The C++ Report, October 1994. 
(St94a) Stroustrup, B., The Design Evolution of C++, Reading, MÁ: Addison-Wesley Publishing Company, 1994. 
(St97) Stroustrup, B., The C++ Programming Language, Third Edition, Reading, MA: Addison-Wesley Publishing Company, 1997. 
(Ta94) Taligent mc., Taligent ‘s Guide to Designing Programs: Well-Mannered Object-Oriented Design in C++, Reading, MÁ: Addison-Wesley Publishing Company, 1994. 
(Ta92) Taylor, D., Object-Oriented Information Systems, New York, NY: John Wiley & Sons, 1992. 
(To89) Tondo, C. L., and 5. E. Gimpel, The CAnswerBook, Englewood Cliffs, NJ: Prentice HaIl. 1989. 
(Ur92) Urlocker, Z., “Polymorphism Unbounded,” Windows Tech Journal, Vol. 1, No. 1, January 1992, pp. 11- 
16. 
(Va95) Van Camp, K. E., “Dynamic Inheritance Using Filter Classes,” C/C++ Users Journal, Vol. 13, No. 6, June 1995, pp. 69-78. 
(Vi94) Vilot, M. J., “An Introduction to the Standard Template Library,” The C++ Report, Vol. 6, No. 8. October 1994. 
(Vo9 1) Voss, G., Object-Oriented Programming: An Introduction, Berkeley, CÁ: Osbourne McGraw-Hill, 1991. 
(Vo93) Voss, G., “Objects and Messages,” Windows Tech Journal, February 1993, pp. 15-16. 
(Wa94) Wang, B. L., and J. Wang, “Is a Deep Class Hierarchy Considered Harmful?” Object Magazine, Vol. 4, No. 7. November-December 1994, pp. 35-36. 
(We94) Weisfeld, M., “Án Álternative to Large Switch Statements,” The C Users Journal, Vol. 12, No. 4, April 1994, pp. 67-76. 
(We92) Weiskamp, K., and B. Flamig, The Complete C++ Primer, Second Edition, Orlando, FL: Ácademic Press, 1992. 
BIBLIOGRAFIA 1061 
(Wi93) Wiebel, M., and S. Halladay, “Using OOP Techniques Instead of switch in C++,” The C Users Journal, Vol. 10, No. lO, October 1993, pp. 105-112. 
(Wi88) Wiener, R. S., and L. J. Pinson, An introduction to Object-Oriented Programming and C++, Reading, MA: Addison-Wesley, 1988. 
(Wi92) Wilde, N., and R. Huitt, “Maintenance Support for Object-Oriented Programs,” ÍEEE Transactions on Software Engineering, Vol. 18, No. 12, December 1992, pp. 1038-1044. 
(W193) Wilde, N.; P. Matthews; and R. Huitt, “Maintaining Object-Oriented Software,” IEEE Software Magazine, Vol. 10, No. 1, ianuary 1993, pp. 75-80. 
(Wi96) Wilson, G. V., and P. Lu, Parailel Programming Using C++, Cambridge, MA: MIT Press, 1996. 
(Wt93) Wilt, N., “Templates in C÷+,” The C Users Journal, May 1993, pp. 33-5 1. 
(Wi90) Wirfs-Brock, R.; B. Wilkerson; and L. Wiener, Designing Object-Oriented Software, Englewood Cliffs, Ni: Prentice Hail, 1990. 
(Wy92) Wyatt, B. B.; K. Kavi; and S. Hufnagel, “Parallelism in Object-Oriented Languages: A Survey,” IEEE Software, Vol. 9, No. 7, November 1992, pp. 56-66. 
(Ya93) Yamazaki, S.; K. Kajihara; M. Ito; and R. Yasuhara, “Object-Oriented Design of Telecommunication Software,” ÍEEE Software Magazine, Vol. 10, No. 1, January 1993, pp. 81-87. 
A 
Indice 
Símbolos 
- operador unário 125 
(NOT lógico) 146-149, 1016-1017 
‘=77-78 
= (operador de desigualdade) 77-78, 518-519, 1016-1017 
# 67-68, 856 
* operador do pré-processador 860-861 
#* operador do pré-processador 860- 
861 
$ prompt da linha de comando do 
UNIX 868-869 
% operador módulo 74-75, 348 
% prompt 868-869 
& (operador dc endereço) 321-324, 
1016-1017 
& e * operadores como inversos 323- 324 
& em uma lista de parâmetros 226-227 
& para declarar referência 224-225 
&& (operador AND lógico) 146-147, 219, 1016-1017 
&= (operador AND sobre bits com atribuição) 986-987, 1016-1017 
O em uma chamada de função 194- 
196 
(1 operador 194-196 
* (operador de derreferência de 
ponteiro) 322-324 
* operador 74-75 
* * operador de exponenciação em 
BASIC 518-519 
+ operador 72-75 
++operador 125 
++ operador sobre um iterador 923-924 
++ operador de incremento unário 125 
+= operador 124-125. 518-519, 893- 
894 
* operador 1024-1026 
.h arquivos de cabeçalho 199-201 
/ operador 74-75 
/1 comentário de uma só linha 66-67 
(operador unário de resolução de 
escopo) 228-229, 475-476, 1012- 
1013, 1026 
<(operador menor que) 77-78 
«deslocamento à esquerda 72-73 
«operador 66-68 
<= (operador menor que ou igual a) 77- 78 
= operador 72-75, 148-149 
== (operador de igualdade) 77-78, 148- 149, 518-519 
> (operador maior que) 77-78 
-> (seleção de membro através de ponteiro) 1024-1025 
-> operador 1025 
>= (operador maior que ou igual a) 77- 78 
» deslocamento à direita 73-74 ?: (operador condicional ternário) 105- 106, 219 
\ seqüência de escape com caractere barra invertida 68-69 
\“ seqüência de escape com caractere aspas 68-69 
\a alarme 68-69 
\n seqüência de escape (nova linha) 68- 
69, 642-643 
\r retorno do carro 68-69 
\t68-69, 179-180 
(operador OR exclusivo sobre bits) 
1016-10 17 
‘= (operador OR exclusivo sobre bits com atribuição) 986-987, 1016-1017 
1 119-120, 1016-1017 
= (operador OR inclusivo sobre bits com atribuição) 986-987, 1016-1017 
II (operador OR lógico) 146-148, 219, 1016- 1017 
‘\O’ 355-356 
\n’ 354-355 
Numéricos 
<numeric> 928-929, 968, 970 
O ponteiro 773-774 
OX 657-65 8 
Ox 657-658 
A 
a pilha está corrompida 708-709 
a repetição termina 109-111 
a STL em programação genérica 1000- 1001, 1055-1056 
A tartaruga e a lebre 379-380 a UML 81-82,84 
a.out 61-63 
aberto 728-729 
abordagem de blocos de construção 56- 
57, 60-61 
abort 478-479, 700-701, 704-705, 
708-709, 713-7 14, 86 1-862, 875-876 abortar um programa 699-700 
“abordagem de código que funciona” 
50-51 
“abortar” 115 
“aridade” de um operador 518-519 
“array inteligente” 272-273 
abreviando expressões de atribuição 
124-125 
abreviaturas semelhantes ao inglês 55- 
56 
abrir um arquivo inexistente 732-733 
abrir um arquivo para leitura 73 1-732 
abrir um arquivo para saída 731-732 
abstração 82-83 
abstração de dados 5 1-52, 452, 479- 480, 524-525, 589-590 
ação 50-51, 105-107, 109-110, 151-152, 236-237, 479-480 
ação de sair 237-23 8 
accumulate 929-930, 967-968, 990- 991 
acessando membros union 880-881 Acessando os membros de um objeto através de cada tipo de handie para o objeto 407-408 
acessibilidade de membros da classe base em classe derivada 577-578 
acesso a função 413-414 
acesso a membro através de um handie 
407-408 
acesso a membro de classe 406-407 
acesso a membro de uma estrutura 406- 
407. 808-809 
acesso a membro private de uma classe 412 
acesso a membros de dados e funções membro não-static 478 
acesso à memória inválido 875-876 
acesso a variável global 228-229 
acesso aos dados do chamador 224-225 
acesso detault para membros de struct é publie 412-413 
acesso direto 762-763 
acesso indexado 940-941 
acesso public por default 808 
acesso verificado 892-893 
acionador (software) de dispositivo 611- 
612 
ações a serem executadas 100-101, 110- 
III 
acrescentar a saída a um outro string 
358-359 
acrescentar dados a um arquivo 730-732 
acumulador 381 
Ada 5 8-59 
adaptador 950-951 
adaptador de contêiner 919-920, 926- 927, 950-951 
adaptador de função 989-990 
adiamento indefinido 345-346 
adição 53-54, 73-76 
adicionar um inteiro a um ponteiro 338- 
339 
adicionar uma nova conta a um arquivo 
746-747 
adjacent_differerice 929-930, 985 
adjacentfind 929-930, 985-986 
adjustfield 662-665 
adulteração 230-231 
Adulteração para possibilitar ligação segura quanto ao tipo 231-232 
advertência 68-69 
ajuste da precisão 652-653 
ajuste de indicadores 657-658 
ajustes originais de formatos 663-664 
algoritmo 100-101, 104-106. 110-111. 116, 124-125,760,917-918,918- 
919, 927-928, 955 
algoritmo de “preparar-se para ir trabalhar” 100-101 
algoritmo de avaliação 803-805 algoritmo de avaliação de expressão pós-fixa 791-792 
algoritmo de avaliação pos-fixo 799- 
800, 803-805 
algoritmo de conversão de infixa para pós-fixa 791-792, 799-800, 803-805 
algoritmo de distribuição 348 
algorilmo de embaralhamento 812-813 
algoritmo de passagem única 925-926 
algoritmo de seqüência não-mutante 
928-929 
algoritmo em pseudocódigo 116 
algoritmo numérico 990-991 
algoritmo padrão 927-928 
Algoritmos básicos de classificação e pesquisa da Biblioteca Padrão 969 
algoritmos da biblioteca padrão 200- 
201 
algoritmos da STL 680-68 1 
algoritmos de classificação 969 
algoritmos de procura 969 
algoritmos de seqüência mutante 928- 
929 
algoritmos genéricos 928-929 
algoritmos matemáticos 965-966 
algoritmos numéricos 928-929 
algoritmos separados de contêiner 928- 
929 
<algorithm> 199-201. 935-936 
alias 226-227, 322-325, 907-908 
alias para o nome de um objeto 428- 
429 
aliaspara um tipo 92 1-922 alinhamento 76 1-762, 809-8 10, 880- 881 
alinhamento em limite 76 1-762 alinhamento na memória 809-8 lO, 880- 881 
alocação de espaço 544-545 
alocação de memória 200-201, 918-919 
alocação de memória dinâmica 714-715 
alocação dinâmica de memória 471, 
473-474, 76 1-764, 877-878 
alocação dinâmica de memória no estilo de C 877-878 
alocador 918-9 19, 936 
alocador default 9 18-919 
alocador personalizado 918-919 
alocar dinamicamente arrays de caracteres para armazenar strings 
575-577 
alocar dinamicamente um array de inteiros 53 1-532, 887-888 
alocar e desalocar memória dinamicamente 420-421 
alterando o fluxo de controle 144-145 
ambiente 191 
ambiente C++ 6 1-62 
ambiente chamador 73 2-733 
ambiente de desenvolvimento de programas 61-62 
ambiente de desenvolvimento GNU 
1054- 1055 
ambiente de programação 190-191 
ambiente de programação C++ 190 
ambiente hospedeiro 874 
ambiente multiusuário 778 
ambigüidade 194 196 
American National Standards Committee on Computers and Information Processing (X3) 56 
American National Standards institute 
(ANSI) 50-51, 481-482 
American Standard Code for 
Information Interchange 360-361 
análise 84 
análise de texto 390-391 
Análise dos resultados de um exame 
122- 123 
análise e projeto estruturados de 
sistemas 59-60 
and 1016-1017 
AND lógico 1016-1017 
AND lógico (&&) 146-147, 185-186, 
816-817 
AND sobre bits 1016-1017 
AND sobre bits(&)8l4-815 
AND sobre bits com atribuição 1016- 
1017 
andeq 1016-1017 
aninhamento 104-106, 129-130, 155- 
156 
aninhamento de estruturas de controle 
102-104, 120-121 
ANSI 50-51, 56. 48 1-482 
ANSI C 56, 65-66 
ANSI/ISO 9899: 199056 
any 986-987 
aparência de blocos de construção 152- 
153 
apelido 322-325 
aplicativos de acesso instantâneo 739- 
740 
aplicativos distribuídos cliente/servidor 
54-55 
append 893-894 
apresentação de caracteres 199-201 
aproximação de números em ponto 
flutuante 120-121 
área indefinida na memória 810-811 
argumento 190-193 
argumento da referência 324-325 
argumento de função 191-193 
argumento de função default 4 19-420 
argumento de linha de comando 871- 
872 
argumento de macro 857-858 
argumento default 228-229, 4 17,420 
argumento para uma macro 857-858 
argumentos default com construtores 
4 17,420 
argumentos mais à direita (finais) 228- 
229 
argumentos na ordem correta 194-195 
argumentos passados para construtores 
de objetos membro 460-461 
argv[] 870-871 
aritmética 63 
aritmética de inteiros 516 
aritmética de ponteiros 338-342, 933- 
934 
aritmética de ponteiros é dependente de 
máquina 338-339 
1064 ÍNDICE 
aritmética de ponteiros sobre um array de caracteres 339-340 
aritmética de ponto flutuante 516 
armazenagem livre 714-715 
ARPA 63-64 
ARPAnet 63-64 
arquivo 727-729, 735, 808 
arquivo de acesso aleatório 727, 739- 742, 744-746 
arquivo de acesso seqüencial 727, 729- 730, 733-734, 738-740 
arquivo de cabeçalho 199-201 408-409, 
411-412,583-584, 62 1-622, 857, 
873-874, 928-931, 935-937, 941-944, 
946, 949-955, 968, 970, 974-976 
arquivo de cabeçalho <cassert> 861- 
862,478-479 
arquivo de cabeçalho <cctype> 200- 201, 329-330, 858-859, 825 
arquivo de cabeçalho <csdtlib> 713- 714 
arquivo de cabeçalho <csignal> 875- 876 
arquivo de cabeçalho <cstdio> 858- 859 
arquivo de cabeçalho <cstdlib> 478- 479, 874, 877-878 
arquivo de cabeçalho <exception> 
706-707 
arquivo de cabeçalho <fstream> 728- 729 
arquivo de cabeçalho <iomanip h> 
119-120 
arquivo de cabeçalho <iomanip> 857, 639-640, 65 1-652, 657-658 
arquivo de cabeçalho <iostream> 
67-68, 200-201, 639-640, 728-729, 
857, l0l0-l0l2 
arquivo de cabeçalho <iostreain. h> 
139- 140 
arquivo de cabeçalho <memory> 714- 715 
arquivo de cabeçalho <new> 711-713 
arquivo de cabeçalho <s tdexcept> 
716-7 17 
arquivo de cabeçalho de entrada/saída 
em streams <iostream> 67-68 
arquivo de cabeçalho definido pelo 
programador 199-201 
arquivo de contas a receber 727-729 
arquivo de estoques 727-729 
arquivo de folha de pagamento 727-729 
arquivo de implementação 484-485 
arquivo de n bytes 729-730 
arquivo de texto 745-746 
arquivo de transações 756 
arquivo em disco 803 
arquivo objeto 62 1-622 
arquivo objeto pré-compilado 484-485 
arquivo seqüencial 727-730, 734-735 
arquivo-fonte 873-874 
arquivos de cabeçalho 432-434 
arquivos de cabeçalho da biblioteca padrão 199-201, 856 
arquivos de cabeçalho de contêineres da biblioteca padrão 92 1-922 
arquivos de cabeçalho no “estilo antigo” 
199-200 
arquivos de cabeçalho padrão 191-193 
arquivos de código-fonte 408-409 
arquivos-fonte múltiplos 408-409 
array “bruto” 480-481 
Array “inteligente”929-930 
array 262-264, 33 1-332, 480-483, 762- 
763 
Array 9 17-918 
array associativo 949-950 
array automático 265-267 
array baseado em ponteiro no estilo de 
C 955-956 
array bidimensional 292-298, 3 12-313, 
345-346, 760 
array bidimensional deck 345-346 
array de caracteres 273-274, 343-344, 
355-356, 522-523, 904-905 
array de caracteres como um string 274- 
275 
array de ponteiros para funções 387-388 
array de strings 345-346 
array de strings suit 345-346 
array dinâmico 877-878 
array local automático 276-277 
array m por n 292-293 
array multidimensional 294 
array no estilo deC 9 19-920 
array unidimensional 3 26-327, 329, 
335-336 
arrays baseados em ponteiros 262 
arrays com múltiplos subscritos 292- 
293, 295 
arrays e funções 279-281 
arrays passados por referência 282-283 
arrays que conhecem seu tamanho 480- 
481 
arredondando 119-120 
arredondar 192-193 
árvore 482-483, 760-761, 780-781, 787- 
788 
árvore balanceada 787-788 
árvore binária 760, 780-78 1, 784-785, 981, 983-984 
árvore binária com duplicatas 793-794 
árvore de pesquisa binária 780-781, 
785-787, 793-794 
ASCJI (American Standard Code for 
information Interchange) 139-140, 
360-361, 645-646 
aspas 67-69 
aspas vazias (string nulo) 740-741 
asserção 478-479 
assert 478-479, 532-534, 543-544, 575-577,699-700,711-712, 861-862 
<assert.h> 200-201 
assign 892-893, 940-941 
assinatura 198-199, 230-231, 546-547, 573,577-578,610-611,622,624-625 
assinatura de uma função 198-199 
assíncrono 697-698 
associa da direita para a esquerda 81- 
82, 126-127, 139-140 
associa da esquerda para a direita 126- 
127 
associação l62-l63, 949-950 
associações 83-84. 161-162 
associações entre classes 162-163 
associatividade 8 1-82, 148-149 
associatividade da direita à esquerda 
81-82 
associatividade de operadores 75-76 
associatividade não-alterada por 
sobrecarga 518-519 
asterisco (*) 74-75, 184-185 
at 893-894, 907-908, 929-930, 936, 
986-987 
AT&T 59-60 
atender 299-300, 404-405, 412 
atexit 874 
ativações 302-304 
atividade 237-238, 302-304 
atof 829-830 
atoi 801-805, 829-831 
atol 829-830 
ator 159-160 
atribuição de array 480-481 
atribuição de objetos de classes 413- 
414,446-447 
atribuição de ponteiro 340-34 1 
atribuição de ponteiros para classe 
derivada a ponteiros para classe base 
568-569 
atribuição de string 891-892 
atribuição de tring de caracteres a 
objetos string 543-544 
atribuição de um objeto a outro 430-431 
Atribuição de um objeto a outro com 
cópia default membro a membro 
430-431 
atribuição de uma estrutura a uma 
estrutura do mesmo tipo 808-809 
atribuição de uma union a uma outra 
union do mesmo tipo 880-881 
atribuição membro a membro 516-5 17 
atribuição membro a membro default 
5 16-5 17 
atribuir novamente a uma referência 
227-228 
atribuir um iterador a outro 927 
atribuiu o valor de 79-80 
atributo 396, 400-401 
atributo “const” 1023-1024 
atributos 82-84, 161-162, 234-235, 298- 
299, 366-367 
atributos de classes 366 
atributos de uma variável 208-209 
atualizar registros no lugar 739-740 
atualiLar um registro 757 
áudio 639-640 
auto 208-210 
auto-atribuição 469-470, 534, 544-545 
auto2tr 714-716 
autodocumentação 70-71 
automóvel 186, 188 
auxflio à depuração 859-860 
avaliação da esquerda para a direita 75- 
77 
avaliador pós-fixo 802-803, 805-806 
avaliando expressões 774-775, 79 1-792 
avaliando uma expressão pós-fixa 792- 
793 
avanço do formulário (‘ \f’) 825,827- 828 
B 
B 56 
Babbage, Charles 58-59 
back 930-931, 936, 95 3-954 
backinserter 974-976 
badcast 716-717 
bad_exception 716-717 
badtypeid 7 16-717 
badbit 645-646, 732-733 
baralho 345-346 
baralho simulado 345-346 
barra (“1”) 236-237 
barra de ativação 302-304 
barra invertida (\) 67-68, 858-859 
barra invertida seguida por zero (\O) 
274-275 
base de stream 65 1-652 
base de uma pilha 774-775 
base e 192-193 
base especificada para um stream 661- 
662 
basefield 66 1-663, 665-666 
BASIC 760-761, 796, 805-806 
basicistringstreans 907-908 
basicostringstreain 907-908 
basicstring 890 
BCPL 56 
begin 906-907, 920-921, 923-924, 
927-928, 933-934 
BelI Laboratories 56-57 
bibliografia 65-66 
biblioteca de matemática 19 1-193, 200- 
201 
biblioteca de tratamento de sinais 875- 
876 
biblioteca de utilitários genéricos 
<cstdlib> 478-479, 829-830, 86 1-862, 874, 877-878 
biblioteca padrão 190-191, 917-918 
biblioteca padrão de C++ 190-191, 535- 
536 
biblioteca padrão de gabaritos (STL) 
200-201, 480-481, 629-630, 680-681, 
917-918, 1051-1052 
bibliotecas 6 1-62 
bibliotecas de classes 60-61, 135-136, 170, 190-191, 408-409, 431-432, 
565-566, 583-584 
bibliotecas de classes independentes de 
plataforma 918-919 
bibliotecas padrão de classes 481-482 
bibliotecas privadas 61,63 
binário 181-182 
binaryfunction 992 
binarysearch 968, 970, 971 
bit 66 1-662, 727, 808 
bitand 1016-1017 
bitor 1016-1017 
<bitset> 200-201, 92 1-922 
bits de estado 645-666 
bitset 9 19-920, 985-988 
bloco 194-196, 209-214, 421-422 
bloco catch 700-705 
bloco de construção aninhado 153-156 
bloco de construção sobreposto 153-154 
bloco de dados 83 8-839 
bloco de memória 838-839, 878-879, 
940-941 
bloco é abandonado (saída do bloco) 
209-2 10 
bloco está ativo 209-2 10 
bloco externo 211-212 
bloco interno 211-212 
bloco try 700-704, 706-707, 710-711 
bloco try externo 706-707 
bloco try que o inclui 704-705 
blocos aninhados 211-212 
“blocos de construção” 83-84 
blocos de construção empilhados 153- 
156 
Boas práticas de programação 60-61, 
64-65 
Bohm,C. 101-103, 154-155 
Booch, Grady 84 
bool 436-437, 1004-1005 
Borland C++ 61, 63, 230-23 1, 874 
Borland C++Builder 1001-1002, 1056 
branco 103-104, 184-185 
hubble sort 283-284, 310-311,334-335, 
349-350 
Buhble sort com chamada por 
referência 334-335 
bucket sort 317 
buferização de saída 667-668 
buffer é esvaziado 640-641 
buffer é preenchido 640-641 
Byron, Lord 58-59 
byte 727-729, 813-8 14 
c 
C & C++ Multimedia Cyber Classroom 
Third Edition 50-53 
C 50-52, 54-56 
C clássico 56 
C How tu Program 5 1-52 
ÍNDICE 1065 
C tradicional 56 
cstr 905-906 
C++ How To Program 52-53 
C++ 54-56, 65-66 
cabeçalho catch 704-705 
cabeçalho de função 194-196, 206-208, 
222-223, 335-336 
cabeçalho whiJ.e 138-139 
cabeçalhos de colunas 263-264 
cadeia de chamadas 698-699 
caixa 96-97 
caixa automático 159-160. 7 39-740 
caixa do sistema 160 
calcula o valor de 1 185-186 
calcula o valor de p a partir da série 
infinita 185-186 
calcula os rendimentos de um vendedor 
178-179 
Calculando a soma de dois inteiros lidos 
do teclado com cm e o operador de 
extração de stream 645-646 
Calculando a soma dos elementos de 
um array 269-270 
Calculando fatoriais com uma função 
recursiva 215-216 
Calculando juros compostos com for 
136-137 
calcular recursivamente o valor mínimo 
em um array 220-221 
cálculodamédia 110-111, 116 
cálculos 74-75, 101-103 
cálculos aritméticos 74-75 
cálculos matemáticos 58-59, 190-191 
cálculos monetários 135-136 
calloc 877-878 
caminhos de decisão 238 
campainha 68-69 
campo 727-729 
campo de bits 813-814, 82 1-825 
campo de bits como membro de uma 
estrutura 822-823 
campo de bits sem nome 824-825 
campo de bits sem nome com largura 
zero 824-825 
campo de tipo 750-751 
campos ajustados 660-661 
campos de bits economizam espaço 
824-825 
campos maiores do que os valores 
sendo impressos 660-661 
capacidade de um string 897, 899 
capacity 932-933 
captura todos os tipos de exceções 697- 
698, 704-705 
capturar todas as exceções de um certo 
tipo 697-698 
caractere 354-355, 727, 808 
caractere apóstrofe (‘) 354-355 
caractere barra vertical (1) 119-120 
caractere de escape 67-68 
caractere de impressão, incluindo 
espaço 825 
1066 ÍNDICE 
caractere de preenchimento 65 1-652, 654-655, 660-661 
caractere delimitador 356-357, 361-362 
caractere nova linha 141-142 
caractere nulo (‘ \O ‘) 274-275, 329- 330, 344-345, 355-358, 362-363, 
65 1-652, 760-761, 792-793 
caractere nulo de término 274-276, 355- 358, 362-363, 905-906 
caractere nulo de término, ‘O’, de um string 462-465 
caractere sublinhado (_ ) 70-71 
caractere til (-) 404-405, 420-421 
caracteres de controle 827-828 
caracteres de espaço em branco 80-81, 
103-104, 141-142, 274-275, 825, 
827-828, 856 
caracteres de preenchimento 657-661 
caracteres de teste 200-201 
caracteres especiais 70-71, 354-355 
caracteres representados como códigos numéricos 360-361 
característica defriend é concedida, não obtida 465-466 
característica defriend não é simétrica 
465-466 
característica defriend não é transitiva 
465-466 
características comuns 584-585, 595- 597 
características comuns entre classes 366 
carregador 61-62 
carregando 61, 63 
carregar 61. 63, 381 
casamento aceitável para o tipo de uma 
exceção 705 
case com comandos múltiplos l40- 
141 
caso de uso 159-160, 164-165, 366 
caso default 137, 140-142, 203-204 
caso(s) base 214, 218-220 
<cassert> 200-201 
cassino 199-201, 206-208 
cassino de jogo 199-201 
catalogando 431-432 
catch (captura) qualquer exceção 705 
catch (captura) todas as exceções 
716-717 
catch (captura) um objeto de classe 
base 705 
catch (captura) uma exceção7l0-711 
catch 700-701 
catch (...) { throw; } 724-725 
catch(. . .) 705-707,716-717 
catch(exception e) 716-717 
CC 61, 63 
CD-ROM 52-53 
ceil 192-193 
CERN 64-65 
cerr (erro padrão sem buifer) 63, 639- 
641, 728-729 
<cfloat> 200-201 
chamada de função 190-191, 193-196 
chamada de função aninhada 699-700, 
702-704 
chamada de função membro SI 6 chamada de função virtual 630- 
632 
chamada de função virtual ilustrada 
631 
chamada por referência 223-224, 278- 281, 325-326, 328-329, 33 1-332, 
334-335, 430-431, 533-534 
chamada por referência com ponteiros 
225-226, 324-325 
chamada por referência com referências 
324-325 
chamada por referência const 320, 325- 326 
chamada por referência e desempenho 
224-225 
chamada por referência e segurança 
224-225 
chamada por referência simulada 279- 
281. 331-332 
chamada por valor 223-224, 278-279, 324-327, 329, 331-332, 430-431, 
533-534, 810-811 
chamada por valor por default 33 1-332 
chamada recursiva 214, 218-219 
chamada recursiva de função 774-775 
chamadas de construtor 417,420 
chamadas de função membro encadeadas 469-470 
chamadas de função membro freqüentemente concisas 405-406 
chamadas de função membro para objetos corist 452-453 
chamadas de funções da biblioteca de matemática 248-249 
chamadas dos destruidores em ordem inversa à das chamadas aos construtores 42 1-422, 577-579 
chamador 190-191, 194-195 chamando funções por referência 324- 
325 
char 70-71, 138-139, 199-200, 813- 814, 904-905 
char * 355-356 
char ** 832-833 
chave 913-914, 942-943 
chave à direita ) 67-69, 72-73 
chave à direita (}) de término de um bloco 211-212 
chave à direita o) de término de uma definição de classe 411-412 
chave à esquerda ({) 67-68, 70-7 1 
chave de pesquisa 288-291, 942-943 
chave de registro 727-729, 757 
chaves ({ )) 68-69, 80-81, 107-109, 118-1l9, 140-141 
chaves duplicadas 942-943, 947-948 
chaves em uma estrutura do/while 
143- 144 
chaves únicas 942-943, 946, 948-949 
chefe 190-191 
chegada de mensagem pela rede 697- 
698 
Chinês 480-481 
ciclo de execução de uma instrução 
383-384 
científica 662-663 
cm (stream de entrada padrão) 63 
cm 7 1-72, 639-641, 645-646, 728-729, 
732-733 
cm. clear 665-666 
cm . eof 647-649, 665-666 
cm. get 138-140, 648-649 
cm . getline 356-357 
cm. tie 667-668 
circuito integrado de silício 50-SI 
círculo cheio com ponta de seta anexa236 
clareza 50-51,64-65.71-72,271 
class 190, 232-233, 396-397, 400- 
401. 680-681, 727-729 
classe 51-52, 56-57, 82-84, 155-156, 262. 857 
classe abstrata 609-6 12, 622, 624-625, 
629-630 
classe adaptadora priority_queue 
954-955 
classe adaptadora stack 95 1-952 
classe Array 525-526 
classe base 564-568, 595-599, 610-611, 
620-621 
classe base abstrata 609-612, 615, 619- 
620, 622, 624-625 
classe base catch 705 
classe base direta 577-579, 588-589 
classe base Employee 611-612 
classe base indireta 577-579, 588-589 
classe base ios 639-640, 665-666 
classe base private 577-579 
classe base protected 577-579 
classe base public 577-5 78, 705 
classe ComnsissionWorker 566-567 
classe Complex 448-449, 556-55 7 
classe composta 584-585 
classe contêiner4l3-414, 465-466, 482- 
483, 680-681, 689-690,919-920 
classe Date 449-450, 460-461, 546- 
547 
classe de armazenamento 208-209, 210- 211,420-421,872-873 
classe de armazenamento automática 
209-210, 262, 276-277 
classe de armazenamento estática 209- 
211 
classe de auto-referência 760-763 
classe de exceção 716-7 17 
classe derivada 564-566, 5 77-579, 595- 597,610-611,615,619-620 
a 
ÍNDICE 1067 
classe derivada catch 705 
classe Employee 460-462, 465, 566- 
567,611-612 
classe gabarito 680, 683-684, 890 
classe Hugelnt 559-560 
classe Hugelnteger 449-450 
classe IntegerSet 514 
classe ios 656-657, 665-666 
classeiostream 640-641, 665-666, 
1026- 1027 
classe istream639-641, 647-649, 
665-666, 728-729, 735, 740-741, 
744-746, 750-751, 907-908, 1026- 
1027 
classe ieradora 462-465 
classe mais derivada 1029-1030 
classe Node 760-761 
classe ostream 639-640 
classe PhoneNumber 562 
classe pilha 680 
classe pilha de float 680 
classe pilha de int 680 
classe pilha de string 680 
classe Point 570-572, 585 
classe Polynomial 562 
classe proxy 408-409, 482-485 
classe Quadrilateral 565-566, 609-611) 
classe queue 482-48 3 
classe Rational 448-449 
classe RationaiNumber 562 
classe Rectangle 449-450, 565-566, 
609-610 
classe SavingsAccount 514 
classe string 452, 462-465, 481-482, 
535-536 
classe string da biblioteca padrão 
199-201, 462-465, 890 
classe ThreeDimensionalShape 
609-610 
classe TicTacToe 450 
classe Time 400-401,449-450 
classe TwoDimensionalShape 609- 
610 
classes 83-84, 396 
classes base virtual 1004, 1026- 
1029 
classes concretas 609-6 12 
classes contêiner ordenadas 531-532 
classes contêineres da biblioteca padrão 
919-920 
classes de coleções 482-483 
classes de exceção definidas pelo 
usuário 7l6-7l7 
classes de exceção derivadas de uma 
classe base comum 711-712 
classes de exceção padrão 716-717 
classes de processamento de arquivos 
64 1-642 
classes de síream 728-729 
classes genéricas 684-685 
classes matemáticas 516 
classes “pré-empacotadas” 190-191 
classes proprietárias 583-584 
classificação com árvore binária 786- 
787, 806 
classificação de uma árvore 786-7 87 
classificação por seleção com 
recursividade 220-22!, 317 
cláusula case 141-142 
clear 937 
cliente 40 1-402, 408-409, 484-485 
cliente de uma classe 424-425, 478-479 
cliente de uma fila 481-482 
<climits> 200-201 
clog (erro padrão com buifer) 639- 
64!, 728-729 
dose 733-734 
<cmath> 191-193, 198-199, 200-201 
COBOL (COmmon Business Oriented 
Language) 58-59 
Code Navigator para C++ 1054-1055 
CodeWarrior para Macintosh e 
Windows 1054-1055 
código cliente 610-611 
código de caractere 360-361 
código de função não-modificável 406- 
407 
código de operação 38!, 798-799 
código de operação da SML 381 
código em ling uagem de máquina 137, 
774-775 
código legado 5 1-52, 328, 862-863, 
868-869, 877-878 
código legado em C 452, 856-85 8, 862- 
863, 868-869, 877-878 
código não-otimizado 803-805 
código objeto 61-63, 408-409 
código objeto de uma classe 408-409 
código otimizado 804-805 
código personalizado 192-193 
código portável 56-57 
código reentrante 406-407 
código seqüência 608-609 
código-fonte 408-409, 583-584 
código-fonte de uma classe 408-409 
coeficiente 562 
coerção “para cima” 1029-1030 
coerção 340-341. 573 
coerção de argumentos 198-199 
coerção explícita, 567-568 
coerção ilegal 1005-1006 
coerção no “estilo antigo” 1005-1006 
coerções não-padrão 1008-1009 
coerções padrão 1008-1009 
colaboração 363-364 
colaborações 234-235, 298-299, 363- 
367, 432-434 
colchetes 236-237 
colchetes ([]) 263-264 
colchetes angulares (<e >) 232-233, 
680-681, 856 
colocando strings em ordem alfabética 
360-36! 
colocar em evidência as características comuns 584-585 
“colocar em evidência” atributos e 
comportamentos comuns 584-585 
colocar em zero indicadores designados 
665-666 
coluna 292-293 
comando 65-68 
comando break 140-142, 144-146, 186, 188, 706, 878-879 
comando break em uma estrutura for 144-145 
comando composto 107-110, 118-119, 
194-196 
comando continue 144-145, 186, 188 
comando continue em uma estrutura for 145-146 
comando de atribuição 72-73, 126 comando de saída compilado 
condicionalmente 859-860 
comando de Simple 796 
comando end de Simple 796, 798-799 
comando executável 7 1-72 
comando goto 101-103, 153-154, 211- 212, 878-879 
comando goto em Simple 796-799 comando if/goto em Simple 796- 
797, 800-802 
comando incondicional goto em Simple 796-797 
comando input de Simple 796 
comando let em Simple 796, 799-80!. 
805-806 
comando print de Simple 796, 798- 799 
comando rem em Simple 796, 798-799 comando return 66-69, 190-l9l, 
194-197, 214, 324-325, 804-805 
comando return em um tratador catch 706 
comando Se em pseudocódigo 104-105 comando separado em várias linhas 80- 
81 
comando throw 706-707 
comando using 1009-1010 
comando vazio 108-109 
comandos de Simple 796 
comandos entre chaves 194-196 
combinação de teclas que indica fim de arquivo 73 3-734, 868 
combinando estruturas de controle de duas maneiras 149-150 
comentário 66-67, 7 1-72, 803 
comentário de uma única linha 66-67 
comitê técnico X3J II 56 
como o sistema deve ser construído 
159- 160 
comp.lang.c 1051-1052 
1068 INDICE 
comp.lang.c++ 1051-1053 
comparação de arrays 480-481 
comparação de ponteiros 340-341 
comparação de strings 893-894 
comparações 284-285 
comparando blocos de memória 838- 
839 
Comparando inicialização de arrays static e automática 276-277 
comparando strings 356-357 
comparando strings 893-894 
comparando uniões 880-88 1 
compare 895-896 
compartilhamento de tempo 54-55, 58- 59 
compartilhar os recursos de um computador 54-55 
compilação condicional 856, 858-859 compilação do comando if/goto 
799-800 
compilador 55-56. 6 1-62, 68-69, 118- 119,774-775, 805-806 
compilador Borland Turbo C++ Visual Edition for Windows 1054-1055 
compilador gera instrução SML 799- 800 
compilador LCC-Win32 para Windows 95/NT 1054-1055 
compilador otimizador 137, 2 10-211. 
452-453 
compilador(es) C++ 61,63, 1050-1051 
compiladores para C++ 1050 
compilando 56, 760. 87 3-874 
compilando um programa com 
múltiplos arquivos-fonte 872-873 
compilar 61, 63, 408-409 
compJ, 1016-1017 
complemento de um 814-815, 819 
complemento do construtor 420-421 
complemento sobre bits 1016-1017 
complexidade 564 
complexidade de software 564 
complexidade exponencial 2 19-220 
componente 190, 43 1-432. 565-566, 
917-918 
componente reutilizável padronizado 
565-566 
componentes 59-60, 83-84 
componentes de software reutilizáveis 
56-57 
componentes reutilizáveis 60-61, 431- 432, 565-566 
comportamento 82-84, 160, 396. 400- 401, 404-405, 412, 480-481 
comportamento inesperado 705 
comportamento não-polimórfico 610- 
611 
comportamento polimórfico com referências 620-621 
comportamentos public 40 1-402 
composição 162-163, 406-407, 485- 
487, 564-565, 584-585, 777 
composição em vez de herança 605-606 
comprimento de um string 274-275, 
355-356, 895-896 
comprimento de um .uh.tring 545-546 
comprimento máximo de um string 897, 899 
compromisso espaço-tempo 744-746 
computação 52-53 
computação cliente/servidor 54-55 
computação conversacional 71-72 
computação distribuída 54-55 
computação interativa 71-72 
computação pessoal 54-55 
computação por ‘força bruta” 185-186 
computador52-53 
computador Apple 54-5 5 
computador cliente 54-55 
computador DEC PDP-7 56 
computador pessoal 52-53,61,63 
Computador Pessoal IBM 54-5 5, 654- 
655 
computadores isolados 64-65 
comutação de pacotes 63-64 
comutativo 519-520 
concatenação 72-73, 544-545 
concatenação de strings 89 1-892 
concatenar 893-894 
concatenar dois objetos lista encadeada 
790-791 
concatenar strings 544-545 
concatenar strings literais 900-901 
conceitos básicos de computadores 51- 
52 
condição 77-78, 103-106, 144-146, 
236-237 
condição de continuação do laço 128- 
133, 142-145 
condição de continuação do laço falha 
2 19-220 
condição de guarda 236-23 8 
condição de término 2 15-216, 272-273 
condição dependente 148-149 
condição excepcional 141-142 
condição mais à esquerda 148-149 
condição simples 146-149 
condições complexas 146-147 
conectado ao dispositivo de entrada 
padrão 640-641 
conectado ao dispositivo de erro padrão 
640-641 
conectado ao dispositivo de saída 
padrão 640-641 
conectando um stream de saída a um 
stream de entrada 667-668 
conexão em rede 639 
conflito de escopos 1010-1011 
conhece um 585 
conjunto 412-414, 423-424, 446-447 
conjunto de caracteres 96-97. 142-143. 360-361, 727-729 
conjunto de caracteres ASCII 97-98. 354-355, 639 
const 223-224, 226-227, 279-282, 324-325. 522-523, 857, 1007-1008 
const char * 329-330 
const com parâmetros de função 329 
const int * const 332-333 
constiterator 906-907, 920-924, 927, 933-934, 945-949 
constreference 922-923 
constreverseiterator 907- 
908, 92 1-923, 927, 933-934 
constante 19 1-193, 798-799 
constante com nome 267-268 
constante de caractere 354-355 
constante de enumeração 206-208. 859- 86(1 
constante de ponto flutuante sem sufixo 
875-876 
constante simbólica 856-859, 86 1-862 
constante simbólica NDEBUG 86 1-862 
constante simbólica P1 857-858 
Constante simbólica predefinida 
DATE 86 1-862 
constante simbólica predefinida 
FILE 861-862 
constante simbólica predefinida 
LINE 861-862 
constante simbólica predefinida 
TINE 861-862 
constantes simbólicas predefinidas 861- 
862 
construindo seu próprio compilador 
760, 796 
construindo um compilador 797-798 
construtor 416-417, 422-423, 434-435 
construtor chamado recursivamente 
533-534 
construtor da classe base 577-579 
construtor de argumento único 534- 
535, 543-544, 1018-1020, 1022- 
1023 
construtor de classe derivada 577-579 construtor de classe derivada chama o 
construtor da classe base 577-579 construtor de classe derivada chama o 
construtor default da classe implicitamente 577-579 
construtor de conversão 534-535. 543- 545, 582-583, 1020-1021 
construtor de cópia 530-534, 920-923 construtor de cópia da classe string 
890-891 
construtor de cópia para um objeto disparado 710-711 
construtor de um único argumento 
1017-1018 
construtor de union 880-881 
ÍNDICE 1069 
construtor default 4 17,420, 462-465, 530-533, 549-550, 686-688, 920-921 
construtor default de objeto membro 
462-465 
construtor em uma união 880-881 
construtor explicit 1020-1021 
construtor ofstream 731-732 
construtores de argumento único e conversões implícitas 1018-1019 construtores de cópia na passagem de parâmetros em chamadas por valor 
545 
construtores de objetos globais 421-422 construtores e destruidores chamados 
automaticamente 420-421 
construtores não podem ser virtuais 
62 1-622 
construtores sobrecarregados 416-417 
consumo de memória 629-630 
conta de poupança 134-135 
contador 110-111, 115, 121-122, 179- 180, 209-2 10 
contador de instruções 800-801 
contador de laço 113-114, 126-127 
contagem baseada em zero 130-131 
Contando conceitos alfabéticos 138 
contando de um em um para cima 113- 
114 
contêiner 200-201, 760, 906-907, 917- 920, 955 
contêiner associativo 9 19-920, 922-923, 926-927. 942-943, 945-946 
contêiner associativo multimap 946- 
947 
contêiner associativo set 946 
contêiner de primeira classe 92 1-924, 926-927, 933-934, 937 
contêiner seqüencial 9 19-920, 926-927, 929-930, 936, 939-940 
contêiner seqüencial deque 940-941 
contêiner subjacente 951-952 
conteúdo dinâmico 57-58 
Controlando a impressão de ieros após a vírgula e casa decimal com valores float 658-659 
Controlando a precisão de valores em ponto flutuante 653-654 
controle centralizado 63-64 
controle de programa 100-101 
converge para o caso base 219-220 
conversão de classe derivada para classe base 705 
conversão de objeto da classe derivada para objeto da classe base 582-583 conversão de ponteiros 573 
conversão entre um tipo primitivo e uma classe 544-545 
conversão explícita 118-119 
conversão implícita 118-119, 543-544, 1017-1018, 1020-1023, 1026-1027 
conversão implícita entre tipos primitivos definida pelo compilador 
544-545 
conversão implícita imprópria 10 18- 
1019 
conversão perigosa 573 
conversões entre tipos primitivos 535- 
536 
conversões entre tipos primitivos por coerção 535-536 
conversões implícitas 1018-1019 conversões implícitas através de construtores de conversão 1020-1021 conversões implícitas definidas pelo usuário 543-544 
conversões padrão 1005-1006 conversor de infixa para pós-fixa 805- 
806 
converte entre tipos 534-535 converte entre tipos definidos pelo usuário e tipos primitivos 535-5 36 converte letras minúsculas 200-201 convertendo de um tipo de dados mais alto para um tipo de dados inferior 
199-200 
convertendo entre classes e tipos primitivos 413-414, 446-447 Convertendo strings para strings no estilo de C e arrays de caracteres 
904-905 
Convertendo um string para maiúsculas 
329-330 
cópia do argumento 329 
cópia membro a membro 430-431, 532- 533 
cópia membro a membro default 430- 
431,532-533,543-544,922-923 
cópia não-incrementada de um objeto 
55 1-552 
copia um string 343-344 
copia um string usando notação de array 343-344 
copia um string usando notação de ponteiro 343-344 
copiando strings 343-344 
Copiando um string usando notação de array e notação de ponteiro 343-344 
copy 905-906, 928-929, 935-936 
copy_backward 928-929, 97 1-973 
Corcoran, Marian 1000-1001, 1055- 1056 
corpo com múltiplos comandos 80-81 corpo de um laço 128-129, 132-133, 
186, 188 
corpo de uma definição de classe 400- 
401 
corpo de uma estrutura while 109-110 
corpo de uma função 67-69, 194-196 
corpo do else 105-106 
corpo do while 109-110 
correção 63 
correio eletrônico 63-64 
correto no sentido matemático 150-152 
cos 192-193 
co-seno 192-193 
co-seno trigonométrico 192-193 
courit 929-930, 942-943, 945-946, 965-966, 986-987 
countif 929-930, 965-968 
cout («) (o stream de saída padrão) 63, 67-68, 70-72,639-641, 643-644,728- 
729 
cout put 645-646 
cout. setf 662-663 
cout write 650-651 
CPU 53-54, 6 1-63 
craps 206-209 
cria dinamicamente a quantidade exata de espaço 462-465 
criação dinâmica de objetos 44 1-442 Criando e destruindo objetos 
dinamicamente 302-304 
Criando e percorrendo uma árvore binária 781-782 
Criando e testando manipuladores de 
stream não-parametrizados definidos 
pelo usuário 655-656 
Criando e usando uma função definida pelo programador 193-194 
criando novos tipos de dados 479-480 
Criando um arquivo de acesso aleatório seqüencial mente 741-743 
Criando um arquivo seqüencial 729-730 
criando uma associação 949-950 
Criando uma estrutura, inicializando seus membros e imprimindo a 
estrutura 398-399 
criar novos objetos dinamicamente 435- 
436 
criar novos tipos 480-481 
criar seus próprios tipos de dados 72-73 
criar um arquivo de acesso aleatório 
740-74 1 
criptografia 182-183, 913-9 15 
criptografla com chave simétrica 913-914 
criptógrafo 913-914 
criptograma 914-915 
crítico para a missão 699-700 
Crivo de Eratóstenes 317, 987-988, 1000 
<csetjmp> 699-700 
<csignal> 875-876 
<cstddef> 357-358 
<cstdio> 200-201 
<cstdlib> 199-201, 829-830, 201- 
202 
<cstring> 200-201, 545 
<ctime> 200-201, 205-206 
ctor 543-544 
<ctype h> 200-201 
<ctrl>-c 875-876 
<ctrl>-d 139-140,647-649.654-655, 
732-733 
1070 ÍNDICE 
<ctrl>-z 139-140, 647-649, 654-655, 
732-733 
cursor 68-69 
cursor da tela 68-69 
cursos de C++ on-line valendo créditos 
1050-1051 
dado de seis faces20 1-202 
dados 52-53 
dados “brutos” 739-740 
dados de saída 63 
dados em uma classe abstract 622, 
624-625 
dados não-inicializados 399-400 
dados public 402-403 
data 905-906 
Date com operadores de incremento 
sobrecarregados 547-548 
DECPDP-I1 56 
decimal por default 66 1-662 
decisão 50-51, 104-106, 155-156 
decisão lógica 52-53 
declaração antecipada 438-440, 494- 
495 
declaração antecipada de classe 484- 
485 
declaração de parâmetro 194-195 
declaração externa 809-810 
dcc laração(ões) 70-71 
declarações dos parâmetros 194-195 
declarando uma função membro const 
static 478 
declarar um tipo de retorno para um 
construtor 417,420 
declarar uma função membro const 
457-459 
declarar uma referência 440 
decoração do nome 230-231 
decrementar 126-127 
decrementar um ponteiro 338-339 
decriptador 913-9 14 
#define 411-412, 858-859, 861-862 
#define NDEBUG 478-479, 86 1-862 
#define P1 3.14159 857 
defined 859-860 
defined 859-860 
definição 127-128 
definição de classe 401-402 
definição de estrutura 396-397, 808- 
809. 82 1-822 
definição de função 193-196,211-212 
definição de função como um protótipo 
de função 194-195. 197-198 
definição de função mime 408-409 
definição de gabarito 232-234, 68 1-682 
definição de gabarito de classe 684-685 
definição de getchar como macro 
858-859 
definição de macro 860-861 
definição simples da class Time 
40 1-402 
deitel@deitel . com 52-53 
deleção 482-483 
deletando memória alocada dinamicamente 47 8-479 
deletando um item de uma árvore binária 787-78 8 
deletar um registro de um arquivo 746- 
747 
delete 471,473-475, 485, 533-534, 714-7 17, 762-763, 877-878 
delete [] (desalocação dinâmica de array) 474-475 
delete operator 62 1-622 delimitador (com valor default ‘\n’) 
648-649 
delimitador default 650-651 
Demonstração de desempilhamento da pilha 709-7 10 
Demonstrando a classe adaptadora priorityqueue da Biblioteca Padrão 955 
Demonstrando a classe adaptadora stack da Biblioteca Padrão 951- 952 
Demonstrando a classe bitset e o Crivo de Eratóstenes 987-988 
Demonstrando a classe Circie 587 Demonstrando a classe Cylinder 
589-590 
Demonstrando a classe Point 55 Demonstrando a função membro flags 663-664 
Demonstrando a função membro width 654-65 5 
Demonstrando a função substr 896- 
897 
Demonstrando a ordem em que construtores e destruidores são chamados 42 1-422 
Demonstrando alguns algoritmos matemáticos da Biblioteca Padrão 
965-966 
Demonstrando as funções de manipulação de elementos do gabarito de classe vector da Biblioteca Padrão 934-935 
Demonstrando as funções equal, 
mismatch e 
iexicographicai_compare da 
Biblioteca Padrão 957-958 Demonstrando as funções erase e 
replace 90 1-902 
Demonstrando as funções fiji, 
filin. generate e 
generate_n da Biblioteca Padrão 
955-956 
Demonstrando as funções f ind de string 898-899 
Demonstrando as funções insert de string 903-904 
Demonstrando as funções remove. 
removeif. remove copy e 
remove_copy_if da Biblioteca 
Padrão 960-961 Demonstrando as funções replace. 
replace_if, replace_copy e 
repiacecopyif da Biblioteca 
Padrão 963 Demonstrando as operações sobre 
conjuntos (set) da Biblioteca Padrão 977 
Demonstrando as palavras-chave operadores l0l7-1018 
Demonstrando atribuição e concatenação de string 891-892 
Demonstrando autoytr 714-7 15 Demonstrando copy_backward. 
merge. unique e reverse 972- 973 
Demonstrando dynamic cast 10 14- 1015 
Demonstrando gabarito de classe set da Biblioteca Padrão 946 
Demonstrando herança de interface com a hierarquia de classes Shape 
104-105, 624-627 
Demonstrando herança múltipla 592 Demonstrando mnplace_merge. 
unique_copy e reversecopy 
974-975 
Demonstrando iteradores de siream de entrada e saída 923-924 
Demonstrando leitura a partir de um objeto istringstream 909-9 10 
Demonstrando lowerbound. 
upper_bound e equal_range 
979-981 
Demonstrando new disparando badalloc em caso de erro 713 
Demonstrando new retornando O em caso de erro 712 
Demonstrando o gabarito de classe deque da Biblioteca Padrão 941- 942 
Demonstrando o gabarito de classe iist da Biblioteca Padrão 937-938 
Demonstrando o gabarito de classe map da Biblioteca Padrão 949-950 
Demonstrando o gabarito de classe multimap da Biblioteca Padrão 
947-948 
Demonstrando o gabarito de classe multiset da Biblioteca Padrão 
943-944 
Demonstrando o gabarito de classe Stack 684-686 
Demonstrando o gabarito de classe vector da Biblioteca Padrão 931- 932 
D 
1•I 
ÍNDICE 1071 
Demonstrando o operador 
constcast 1 (X)7- 1008 
Demonstrando o operador 
reinterpretcast 1008-1009 Demonstrando o operador 
staticcast 1006-1007 
Demonstrando o qualificador de tipo const 28 1-282 
Demonstrando o tipo de dados primitivo bool 1004 
Demonstrando o uso de naxnespaces 
1010-1011 
Demonstrando os algoritmos miri e max 984-985 
Demonstrando os gabaritos de classe adaptadora queue da Biblioteca Padrão 953-954 
Demonstrando os operadores . * e 
1025 
Demonstrando polimorfismo com a hierarquia de classes Employee 
612-613 
Demonstrando setnewhandler 
7 13-714 
Demonstrando swap. iter swap e swap_ranges 971 
Demonstrando typeid 1013-1014 Demonstrando um array de ponteiros 
para funções 353-354 
Demonstrando um construtor 
explicit 1020-1021 
Demonstrando um membro de dados mutable 1024-1025 
Demonstrando um objeto função binária 
990-991 
dependente de máquina 55-56, 322-324, 338-339, 479-480 
depuração 203-204, 478-479, 699-700 
depurador 857 
depurar 5 8-59, 64-65 
deque 919-920, 926-927, 929-931, 936, 937, 939-940, 950-953 
<deque> 200-201, 921-922, 941-942 
dequeue 778 
derreferenciando um ponteiro O 322- 
324 
derreferenciando um ponteiro 322-326, 329 
derreferenciando um ponteiro void * 
340-341 
derivar uma classe de outra 405-406 
derreferenciar um iterador 923-925, 927 
derreferenciar um iterador const 925- 
926 
derreferenciar um iterador posicionado fora de seu contêiner 925-926 
derreferenciar um não-ponteiro 322-324 desaloca memória alocada com new 
76 1-762 
desalocar memória 714-715 
desconectando um stream de entrada de um stream de saída 667-668 
desempenho 56-57 
desempenho de classificação e pesquisa em árvore binária 806 
desempenho de pesquisa 806 
desempenho na pesquisa em listas 806 
desempilhamento da pilha 698-700, 
708-711 
desempilhando a pilha de chamadas de função 709-7 10 
desenhando uma forma 608-609 
desenvolvimento de aplicativos rápido 
(RAD) 43 1-432 
desenvolvimento de classe 524-525 
desenvolvimento de software orientado a componentes 481-482 
desigualdade 1016-1017 
desligar 697-698 
deslocamento 630-632, 739-740 
deslocamento à direita (») 8 14-815 
deslocamento a partir do início de um arquivo 735-736 
deslocamento em bytes 739-740 
deslocamento para um ponteiro 341-342 
deslocar um intervalo de números 201- 
202 
destruído automaticamente 213-214 
destruidor 404-405, 420-423, 434-435, 
920-921 
destruidor da classe base 62 1-622 
destruidor de classe base virtual 
62 1-622 
destruidor de classe derivada 621-622 destruidor de classe derivada chamado 
antes do destruidor de sua classe base 
577-579 
destruidor do objeto disparado 711-712 destruidor não recebe parâmetros nem 
retorna valor 420-421 
destruidor virtual 62 1-622 destruidores não podem receber 
argumentos 404-405 
destruidores não podem ser sobrecarregados 404-405 
destruindo objetos dinamicamente 302- 
304 
destruir objetos 485 
desviar se negativo 799-800 
desvio incondicional 878-879 
desvio incondicional goto 878-879 
detalhes secretos” da implementação 
1023-1024 
detalhes de implementação, ocultos 
396-397 
detectar um erro 697-698 
diagnósticos que ajudam na depuração de programa 200-201 
diagrama de atividades 237-238, 298- 299, 366-367 
diagrama de casos de uso 159-160 
diagrama de classes 16 1-162, 234-235, 298-299, 366, 432-435, 437 
diagrama de classes da UML 432-434 
diagrama de colaborações 365 
diagrama de mapa de estados 236-23 8, 298-299, 366-367 
diagrama de objetos 301-302 
diagrama de seqüência 301-304, 365- 367, 432-434, 440 
diagramas de estado 236 
diagramas de objetos 164 
diálogo 7 1-72 
diâmetro103-105 
Dicas de desempenho 60-61 
Dicas de portabilidade 60-61, 65-66 
Dicas de teste e depuração 60-61 
dicionário 757-758 
dicionário computadorizado 757 
differencetype 922-923 
dígito 70-71, 354-355 
direção de busca 735-736 
diretiva #error do pré-processador 
860-861 
diretiva do pré-processador #define 
680-681, 857 
diretiva do pré-processador #endif 
859-860,41 1-412 
diretiva do pré-processador #ifdef 
859-860 
diretiva do pré-processador # fndef 
859-860,411-412 
diretiva do pré-processador #include 
197-201, 408-409, 856 
diretiva do pré-processador #line 
860-861 
diretiva do pré-processador #undef 
858-859, 86 1-862 
diretivas condicionais do pré- processador 85 8-859 
diretivas do pré-processador 61,63,67- 68, 70-71, 411-412 
diretório do sistema de arquivos 760 
disco 52-54, 61, 63, 797-798 
disco magnético 727 
disco óptico 727 
disparando novamente uma exceção 
707-708 
disparando uma exceção 703-704 
disparar exceções derivadas de exceções padrão 7 16-717 
disparar exceções não-derivadas de exceções padrão 7 16-717 
disparar exceções padrão 716-717 
disparar novamente uma exceção 706- 
707 
disparar objetos const 706 
disparar um int 703-704 
dispositivo de entrada 52-53 
1072 ÍNDICE 
dispositivo de memória secundária 61, 63, 727 
dispositivo de saída 5 3-54 
distribuidor 378-379 
DivideByZeroException 702-703 
divides 989-990 
dividir para conquistar 190, 192-193 
divisão 53-54, 74-76, 120-121 
divisão de inteiros 74-75, 118-119 
divisão de ponto flutuante 118-119 
divisão por zero 63, 115, 697-698, 700- 
701, 875-876 
divisão por zero é indefinida 480-481 
documentação de classes derivadas 584- 
585 
documentar um programa 66-67 
documento de especificações da UML 
1.3 84-85 
dois maiores valores 179-180 
dois níveis de refinamento 116 
dois-pontos (:) 211-212, 460-461, 575- 579, 594-595, 878-879 
dois-pontos 299-300 
dois-pontos (:) no cabeçalho de uma definição de classe 57 1-573 
DOS 868, 875-876 
double 135-136, 191-193, 198-199, 
875-876 
downcast 1007-1008, 1014-1016 
download gratuito 1054-1055 
downloads gratuitos de edição de demonstração 1(154-1055 
Duas maneiras de declarar e usar funções que não recebem argumentos 
22 1-222 
dump 383-385 
dynamic_cast 568-569, 7 16-717, 1013-10 16 
E 
E maiúsculo 657-65 8 
EIS de alto nível 639 
EIS de arquivos 640-641 
EIS na memória 907-908 
EIS não-formatada 639-640, 650-651 
EBCDIC (Extended Binarv Coded 
Decimal Interchange Code) 360-361 
economizando memória 209-2 10 
editando um arquivo 61,63 
editar 61,63 
editor 6 1-62 
editor de ligação 6 1-62, 872-873 
editor de texto 354-355, 733-734 
editor emacs 61,63 
efeitos colaterais 210-211, 219, 223- 
224, 680-681 
elemento de ordem zero 262-263 
elemento de sorte 199-201 
elemento de um array 262 
elemento fora do intervalo 53 1-532 
elemento particionador 985 elevando um inteiro a uma potência 
inteira recursivamente 220-221 elevar a uma potencia 173-174, 192-193 Elevar uma variável ao cubo usando 
chamada por referência com um 
argumento ponteiro 325-326 Elevar uma variável ao cubo usando 
chamada por valor 325-326 #elif 859-860 
eliminação de duplicatas 760, 7 86-787, 
793-794 
eliminação do comando goto 153-154 
eliminação do goto 101-103 
elipse 96-97, 101-103 
else 105-106 
e-mail 63-64 
embaralhar 345-346 
embaralhar cartas 850-85 1 
empacotando código como uma função 
192- 193 
empilhamento de estruturas de controle 
102-104, 150-152 
empilhando 102-106, 155-156 
empty 920-921, 95 3-955 
encadeamento 72-73, 643-646 
encadeamento de atribuições 544-545 
encadeamento de put 645-646 
Encadeando chamadas a funções membro 470-473 
encadeando operadores += 544-545 
encadeando operadores de inserção em stream 643-644 
encapsula 82-83 
encapsulamento 405-406, 428-429, 445, 462-465, 573 
end 920-921, 923-928, 933-934, 985- 986 
endereço de memória 320-321, 644-645 
endereço de um campo de bits 824-825 
endereço (&) de uma estrutura 808-809 
endi 72-73, 119-120,642-643 
endLine 655-656 
enflleirar 48 1-482 
enqueue 778 
entrada com streams 640-641, 645-646 
entrada e saída de strings 805-806 
entrada padrão 7 1-72, 868 
entrada via teclado 117-118 
entrada/saída (EIS) 190-191, 639 
entrada/saída com stream,s 67-68 
entrada/saída de array 480-481 
entrada/saída de objetos 750-751 
entrada/saída formatadas 639-640, 738- 
739 
enum 206-208 
enumeração 206-208. 857 
enumeração na classe ios 656-657 
Enviando dados de saída para strings na memória 907-908 
enviando para a saída tens de dados de tipos primitivos 64 1-642 
Enviando para a saída o valor de uma expressão 643-644 
enviando para a saída um valor em ponto flutuante 657-658 
Enviando um string para a saída usando 
duas inserções em stream 642-643 
Enviando um string para a saída usando 
inserção em stream 64 1-642 
enviar mensagens usando uma 
referência 437 
EOF 138-139, 647-651. 825 
equação da linha reta 76-77 
equal 929-930, 957-960 
equal_range 945-946, 978-984 
equalto 989-990 
equivalente decimal de um caractere 
ASCII 805-806 
equivalente em palavras do valor de um 
cheque 392-393 
erase 90 1-902, 92 1-922. 937 
erro de compilação 68-69 
erro de estouro 479-480 
erro de estouro aritmético 716-717 
erro de formato 665-666 
erro de lógica 77-78. 112-113 
erro de lógica fatal 115 
erro de sintaxe 68-69 
erro de subscrito fora do intervalo 
válido 703-704 
erro de underflow aritmético 716-717 
erro detectado em um construtor 710- 
711 
erro do editor de ligação 1009-1010 
erro durante a compilação 68-69 
erro durante a execução 63 
erro fatal 63, 115, 385-386 
erro fatal durante a execução 322-324, 
573-574 
erro não-fatal 63, 197-198,699-700 erro por um 113-114, 130-131, 263- 
264 
erro síncrono 697-698 
erros 61,63 
Erros comuns de programação 60-61 
erros de ligação 230-231 
erros relacionados a catch 711-712 
escala 269-270 
escalar 278-279. 334-335 
escalonável 269-270 
escopo 131-132,210-211,404-405, 
582-583, 697-698, 872-873, 1009- 
1010 
escopo aninhado 703-704 escopo de arquivo 211-212, 406-407, 
474-475. 69 1-692. 882-883 escopo de bloco 211-212 escopo de classe 211-212,404-407 escopo de função 211-212,406-407 escopo de gabarito de classe 686-688 
ÍNDICE 1073 
escopo de protótipo de função 211-212 
escopo de um switch 706 
escopo de uma constante simbólica ou 
macro 858-859 
escopo de uma função 873-874 
escopo de urna variável 208-209 
escopo global 421-422, 1012-1013 
escrevendo dados aleatoriamente em um 
arquivo de acesso aleatório 742-743 
esgotar a memória 216-217. 573-574 
espaçamento interno 660-661 
espaçamento vertical 103-104. 129-130 
espaço ( ‘‘ ) 70-71 
espaço de objetos 1000-1001, 1056 
espaço em branco 645-649, 651-652, 
860-861 
espaço em disco 711-714.732-733 
espaço vazio 740-741 
espaços 36 1-362 
espaços para preenchimento 660-661 
especificação de exceção 708-709 
especificação de exceção vazia 708-709 
especificações da UML 1.3 162-163 
especificações de ligação 883-884 
especificador de acesso a membro 401- 
402, 465-466 
especificador de acesso a membro 
public 401-402 
especificadores de classe de 
armazenamento 208-209 
especificadores de ligação static 
1012-1013 
especificidades 610-611 
espiral 216-2 17 
estação de trabalho 54-55 
estado consistente 404.417,420,424- 
425 
estado de erro de um ,stream 665-666 
estado de formato 663-664 
estado de ftrmato anterior 663-664 
estado inicial 236 
estados 236. 298-299 
estados de erro 645-646, 666-667 
estendem a linguagem de programação base 480-481 
estouro 875-876 
estouro aritmético 697-698 
estratégia de tratamento de exceções 
706 
estrutura 262, 320, 33 1-332, 396-397, 808, 857 
estrutura de auto-referência 397-398, 
808-809 
estrutura de controle 100-106. 416-417, 
878-879 
estrutura de controle aninhado 152-153, 
878-879 
estrutura de controle de entrada única e saída única 102-104 
estrutura de dados encadeada 397-398 
estrutura de dados linear 762-763, 780- 781 
estrutura de dados não-linear, bidimensional 780-781 
estrutura de dados subjacente 954-955 estrutura de dados último a entrar, 
primeiro a sair (LIFO) 479-480, 774-775, 9 19-920, 950-95 1 
estrutura de entrada única e saída única 
104-105. 150-152 
estrutura de repetição 101-103, 109- 
110,115,796-797 
estrutura de repetição do/while 102- 
104, 142-144, 152-153 
estrutura de repetição for 129-130 
estrutura de seleção 101-104 
estrutura de seleção dupla 102-104, 121-122, 137 
estrutura de seleção múltipla 102-104, 137 
estrutura de seleção simples 137 
estrutura de seleção simples if 102- 
105, 107-108 
estrutura for 130-131, 134-135, 152- 155 
estrutura for aninhada 295 
estrutura for externa 295 
estrutura funcional de um programa 68-69 
estrutura hierárquica 566-567 
estrutura hierárquica semelhante a urna árvore 566-567 
estrutura if 77-78, 80-81, 102-105. 107-108, 137, 146-147, 154-156 
estrutura if/else 102-109, 121-122, 137, 146-147 
estrutura if/else aninhada 106-108 estrutura se/senão em pseudocódigo 
105- 106 
estrutura seqüencial 101-103 
estrutura switch 102-104, 137, 140- 143, 154-155, 564-565, 608, 706, 
750-751 
estrutura switch com break 140-141 estrutura while 102-104, 109-111. 
115, 118-119, 121-122, 128-129, 
142-143, 152-156 
estruturas de dados 262, 760, 917-918 
estruturas de dados dinâmicas 262, 320, 760 
estruturas de dados pré-empacotadas 
760 
estruturas normalmente são passadas através de chamada por valor 399- 
400 
estruturas profundamente aninhadas 
153-154 
Estudo de caso: uma classe Date 547- 
548 
Estudo de caso: uma classe String 
535-536 
esvaziando um stream 651-652 
esvaziar o buifer de saída 72-73, 642- 643 
esvaziar um buffer 667-668 
esvaziar um stream 874 
etapa de particionarnento 387-388 
etapa de recursão 214, 218-219. 387- 388 
etiqueta de estrutura 396-397 
“é um” 565-566, 570-572, 577-579. 584-585, 592, 594-595 
“é um” é herança 564-5 65 
evento 236 
evento inesperado 875-876 
evitar perda de memória 7 16-717 
evitar que arquivos de cabeçalho sejam incluídos mais de uma vez 411-412 
evitar que o objeto de uma classe seja atribuido a outro 534 
evitar que objetos de classe sejam copiados 534 
evitar repetir código 192-193, 419-420 Evitar um problema de precedência 
entre o operador de inserção em 
síream e o operador condicional 646- 
647 
evitar uma chamada de função 222-223 
examinar dados 404 
examinar qualquer tentativa de 
modificar dados 424-425 
exceção bad alloc 711-7 14, 716- 
717, 761-762, 936 
exceção de classe base 7 16-717 
exceção de divisão por zero 700-701 
exceção de ponto flutuante 875-876 
exceção inesperada 698-699 
exceção invalid argument 936 
exceção length error 936 
exceção não-capturada 698-699 
exceção não-listada em especificação de 
exceção 708-709 
exceção out_of_bounds 936 
exceção out of_range 716-717. 
892-893, 936, 986-987 
exceções ocorrendo em um tratador de 
exceções 706 
exception 716-717 
execução condicional de atividades 302- 
304 
execução condicional de diretivas do pré-processador 856 
execução seqüencial 101-103 
executar 61-63 
executar um programa 61, 63 
Exemplo de uso de arrays bidimensionais 295-296 
Exemplos 
repetição controlada por contador 
127- 128 
Repetição controlada por contador com a estrutura for 129-130 
ÍNDICE 1075 
Demonstrando o gabarito de classe Stack 684-686 
Demonstrando o gabarito de classe vector da Biblioteca Padrão 
93 1-932 
Demonstrando o operador constcast 1007-1008 
Demonstrando o operador reinterpretcast 1008- 1009 
Demonstrando o operador staticcast 1006-1007 
Demonstrando o qualificador de tipo const 28 1-282 
Demonstrando o tipo de dado primitivo bool 1004 
Demonstrando o uso de 
namespaces 1010-1011 
Demonstrando os algoritmos mm e max 984-985 
Demonstrando os gabaritos de classes adaptadoras queue da Biblioteca Padrão 953-954 
Demonstrando os operadores * e 
->* 1025 
Demonstrando polimorfismo com a hierarquia de classes 
Empioyee 6 12-613 
Demonstrando 
setnewhand].er 713-714 Demonstrando wap, iter_swap e 
swap_ranges 97 1 
Demonstrando typeid 10 13- 1014 
Demonstrando um array de ponteiros para funções 353-354 
Demonstrando um explicit constructor 1020-1021 
Demonstrando um membro de dados mutabie 1024-1025 
Demonstrando um objeto função binária 990-991 
Deturpação de nomes para possibilitar a ligação segura quanto ao tipo 23 1-232 
Disparando novamente uma exceção 707-708 
Duas maneiras de declarar e usar funções que não recebem argumentos 221-222 
Elevar uma variável ao cubo usando chamada por referência com um ponteiro como argumento 325-326 
Elevar uma variável ao cubo usando chamada por valor 325- 
326 
Encadeando chamadas de funções membro 470-47 1 
Enviando o valor de uma 
expressão para a saída 643-644 
Enviando um string para a saída usando duas inserções em stream 642-643 
Enviando um string para a saída usando inserção em stream 641- 
642 
Evitando um problema de precedência entre o operador de inserção em stream e o operador condicional 646-647 
Exemplo de uso de arrays bidimensionais 295-296 
Exibindo valores em ponto flutuante nos formatos default do sistema, científico e fixo 
662-663 
Friends podem acessar membros priva te da classe 465-466 
Função maximum definida pelo programador 196-197 
Funções não-friendJnãomembro não podem acessar membros private 467-468 
Gerando números de Fibonacci recursivamente 217-218 
Gerando valores para serem colocados nos elementos de um array 265-267 
Implementação do tipo de dados abstrato Time como uma classe 
402-403 
Implementando uma classe proxy 
482-483 
Imprimindo as características de um string 897-899 
Imprimindo em múltiplas linhas com um único comando, usando cout 69-70 
Imprimindo em uma mesma linha com comandos separados usando cout 69-70 
Imprimindo o valor de uma union nos tipos de dados dos dois membros 88 1-882 
Imprimindo um inteiro com espaçamento interno e forçando o sinal mais 660-661 
Imprimindo um inteiro sem sinal em binário 815-816 
Imprimindo um string, um caractere de cada vez, usando um ponteiro não-constante para dados constantes 330-331 
Inicializando arrays 
multidimensionais 294 
Inicializando e usando uma variável constante corretamente 
267-268 
Inicializando os elementos de um array com uma declaração 265- 
267 
Inicializando os elementos de um array com zeros 264-265 
Inteiros deslocados e ajustados a uma escala produzidos por 1 + rand() % 6 201-202 
Lançando um dado de seis faces 6000 vezes 202-203 
Leitura de caracteres com a função membro getline 650 
Lendo e imprimindo um arquivo seqüencial 734-735 
Lendo um arquivo de acesso aleatório seqüencialmente 744- 
746 
Manipulando uma lista encadeada 
763-764 
O operador sizeof quando aplicado a um nome de array retorna o número de bytes no array 336-337 
Operador de extração de stream 
retornando falso quando 
encontra fim de arquivo 647- 
648 
Operadores de inserção em stream e extração de stream definidos pelo usuário 520-52 1 
Ordem na qual construtores e 
destruidores de classe base e 
classe derivada são chamados 
579-580 
Ordenando um array com buhble sort 283-284 
Os operadores ponteiros & e * 
322-324 
Passando arrays e elementos individuais de arrays para funções 279-28 1 
Pesquisa binária em um array ordenado 290-291 
Pesquisa linear em um array 288- 
289 
Pré-incrementando e pós- incrementando 126 
Processando uma fila 778 
Programa de análise de dados de uma pesquisa 285 
Programa de classificação de uso geral usando ponteiros para 
funções 350-35 1 
Programa de consulta de crédito 
735-736 
Programa de contas bancárias 747- 
748 
Programa de embaralhamento e distribuição de cartas 348 
Programa de impressão de texto 
66-67 
Programa de lançamento de dados usando arrays em vez de 
switch 273-274 
1076 ÍNDICE 
Programa de média da turma com repetição controlada por contador 111-112 
Programa de média da turma com repetição controlada por sentinela 116-118 
Programa para simular o jogo de craps 206-208 
Retornando uma referência para um membro de dados 
priva te 429-430 
Separando a interface da implementação da classe Time 
409-410 
Simulação de embaralhamento e distribuição de cartas de alto desempenho 811-812 
Sobrescrevendo membros de uma classe base em uma classe derivada 573-574Somatório com for 134-135 Tentando chamar 
polimorficamente uma função herdada por herança múltipla 
1026- 1027 
Tentando modificar dados através de um ponteiro não-constante para dados constantes 330-33 1 
Tentando modificar um ponteiro constante para dados constantes 
333-334 
Tentando modificar um ponteiro constante para dados nãoconstantes 332-333 
Tentando utilizar uma referência não-inicializada 227-228 
Tentativa errada de acessar membros private de uma classe 412 
Tentativa errada de inicializar uma constante de um tipo de dado primitivo através de atribuição 
457-459 
Tornando aleatório o programa de lançamento de dado 204-205 
Tratando arrays de caracteres como strings 275-276 
Um exemplo de chamada por referência 225-226 
Um exemplo de escopos 212-213 Um exemplo simples de tratamento de exceção com divisão por zero 700-701 
Um objeto const precisa ser inicializado 268-269 
Um programa de adição 70-71 Um programa de análise de 
pesquisa entre alunos 270-271 Um programa que imprime 
histogramas 272-273 
Um programa simples com pilha 
775-776 
Um programa simples com pilha usando composição 777 
Uma classe Array com sobrecarga de operadores 525- 
526 
Uma classe de inteiros enormes 
559-560 
Uma classe de números complexos 556-557 
Uma classe String com sobrecarga de operadores 536- 
537 
Usando a estrutura do/while 
143-144 
Usando a função membro f iii e o manipulador setfill 660- 
661 
Usando a função swap para permutar strings 896-897 
Usando argumentos de linha de comando 87 1-872 
Usando argumentos default 228- 
229 
Usando as funções exit e atexit 874 
Usando as funções membro get. put e eof 647-649 
Usando atof 830-83 1 
Usando atoi 830-831 
Usando atol 83 1-832 
Usando campos de bits para armazenar um baralho de cartas 
822-823 
Usando classes base virtual 
1028-1029 
Usando funções da Biblioteca Padrão para fazer um heapsort 
98 1-982, 984 
Usando funções gabarito 682-683 
Usando funções set e get 425-426 
Usando goto 879-8 80 
Usando inicializadores de objetos membro 461-462 
Usando isdigit, isalpha. isalnume isxdigit 826 
Usando islower. isupper. tolower e toupper 826-827 
Usando isspace. iscntrl, ispunct, isprint e isgraph 828-829 
Usando listas de argumentos de tamanhos variáveis 869-870 
Usando membro de dados static para manter uma contagem do número de objetos de uma classe 475-476 
Usando memchr 84 1-842 
Usando memcmp 841-842 
Usando memcpy 839-840 
Usando memmove 840-841 
Usando memset 842-843 
Usando o comando break em uma estrutura for 145-146 
Usando o comando continue em uma estrutura for 145-146 
Usando o indicador 
ias: showbase 661-662 Usando o indicador 
ios: :uppercase 663-664 Usando o manipulador de stream 
endl 642-643 
Usando o operador sizeof para determinar tamanhos de tipos de dados padrão 338 
Usando o operador unário de resolução de escopo 229-230 
Usando o ponteiro this 468-469 Usando os manipuladores de 
stream hex, oct, dec e setbase 652-653 
Usando os operadores de deslocamento sobre bits 819- 
820 
Usando os operadores de igualdade e relacionais 79-80 
Usando os operadores sobre bits 
AND, OR inclusivo, OR 
exclusivo e complemento 817- 
818 
Usando quatro métodos de 
referenciar elementos de array 
342-343 
Usando strcat e strncat 
358-359 
Usando strchr 834-835 
Usando strcmp e strncmp 
359-360 
Usando strcpy e strncpy 358 
Usando strcspn 835-836 
Usando strerror 843-844 
Usando strlen 362-363 
Usando strpbrk 836-837 
Usando strrchr 836-837 
Usando strspn 837-838 
Usando strstr 838-839 
Usando strtod 832-833 
Usando strtok 36 1-362 
Usando strtol 833-834 
Usando strtoul 834-835 
Usando tratamento de sinais 876- 
877 
Usando um Construtor com argumentos default 418 
Usando um função mime para calcular o volume de um cubo 
223-224 
Usando um gabarito de função 
233-234 
Usando um inicializador de membro para inicializar uma constante de um tipo de dados primitivo 457-45 8 
ÍNDICE 1077 
Usando um iterador para enviar um string para a saída 906- 
907 
Usando um objeto 
ostringstreaxn alocado dinamicamente 908-909 
Usando uma classe Time com 
objetos const e funções 
membro const 453-454, 456- 
457 
Usando uma função utilitária 414- 
415 
Usando uma referência 
inicializada 226-227 
Usando uma union anônima 882- 883 
Exemplos 
Justificação à esquerda e 
justificação à direita 659-660 
exemplos com a estrutura for 132-133 
exemplos de herança 565-566 
exemplos do ObjectSpace STL Tool Kit 1000. 1055-1056 
exemplos e exercícios de recursividade no texto 220-221 
exercício definitivo sobre sobrecarga de operadores 555-556 
exercícios com ponteiros 385-386 
<exception> 199-201, 706-709, 7 16-7 17 
Exibindo valores em ponto flutuante nos formatos default do sistema 
científico e fixo 662-663 
exit42l-422, 699-700, 7 13-714, 732- 733, 874 
EXITFAILURE 874 
EXITSUCCESS 874 
exp 192-193 
expandir uma macro 857-858 
expansão de macro 858-859 
expiicit 1020-1023 
“explosão” exponencial de chamadas 
2 19-220 
expoente 562 
exponenciação 77-78, 135-136 
expressão 104-105. 191-193 
expressão algébrica 75-76 
expressão aritmética infixa 79 1-792 
expressão com ponteiros 338-339, 341- 342 
expressão condicional 105-107, 646- 647, 703-704 
expressão controladora 140-141 
expressão de coerção 859-860 
expressão pós-fixa 792-793, 803-805 
expressões intensivas em operadores 
535-536 
Extended Binary Coded Decimal Interchange Cade (EBCDIC) 360- 361 
extensão de sinal 142-143, 814-815 
extensibilidade 608,610-611,697,928- 929 
extensibilidade da STL 920-921 
extensibilidade de C++ 522-523 
extensões de nomes de arquivos 61, 63 
extern “C” 883-884 
extern 208-211, 872-873 
extração de stream 79-80 
extrair características comuns 595-597 
F 
fabs 192-193 
“faça seu ponto” 206-208 
faiibit 645-646,650-651,732-733 
fala 639 
“falando de objetos” 8 1-82, 93-94, 396 
falando para um computador 53-54 
falha de new 697-698, 711-712 
falhas não-recuperáveis 665-666 
faise77-78, 102-106, 109-110, 219- 
220, 1004 
FAQ sobre bibliotecas de C++ 105 1- 
1052 
FAQs 1051-1053 
FAQs sobre a STL 1000-1001, 1055- 
1056 
fase de análise 366 
fase de análise orientada a objetos 159- 
160 
fase de compilação 68-69 
fase de edição 63 
fase de inicialização 114-115 
fase de processamento 114-115 
fase de término 114-115 
fases 114-115 
fator de escala 20 1-202, 205-206 
faturação prima 1000 
fatorial 182-183, 214-217 
fatorial de um inteiro não-negativo 182- 
183 
“faxina” de término 420-42 1 
“fazer AND com” 816-817 
“fim de entrada de dados” 114-115 
“formato universal” 398-399 
fazendo coerção 340-341 
Fazendo coerção de ponteiros para classe base para ponteiros para classe derivada 568-569 
fazendo coerção para baixo de um ponteiro 567-568 
fazendo referência a um objeto de classe base com um ponteiro de classe base 582-583 
fazendo referência a um objeto de classe base com um ponteiro de classe derivada 582-5 83 
fazendo referência a um objeto de classe derivada com um ponteiro de classe base 582-583 
fazendo referência a um objeto de classe derivada com um ponteiro de classe derivada 582-583 
fazendo spool 778 
fazendo upcasting de um ponteiro 568- 
569 
fechar um stream 874 
ferramenta de depuração 478-479, 861- 862 
ferramenta de desenvolvimento de 
programas 104-105, 124-125 
ferramentas para C++ 1050 
FIFO 481-482, 778, 919-920, 940-941, 
952-953 
fila 481-482, 760-763, 773-774, 778 
fila com duas extremidades 940-94! 
fila com prioridades 917-918 
fila cresce infinitamente 793-794 
fila de caixa em um supermercado 778, 
793-794 
fila de espera 48 1-482 
fila em uma rede de computadores 778 
filho 780-78 1 
filho da direita 780-781 
filho da esquerda 780-78 1 
fiji 928-929, 955-956 
filln 928-929, 955-95 6 
fim de arquivo 139-141, 356-357, 647- 
648, 665-666, 733-734 
fim de linha 72-73 
fim de main 68-69 
fim de um stream 735-736 
fim de um string 760-761 
fim de uma fila 760, 778 
fim de uma lista 805-806 
fim de uma seqüência 968, 970 
finalidade do programa 66-67 
find900-90l, 902-903, 927-930, 942- 
943, 945-946, 968, 970 
findeach 929-930 
findend 929-930 
findfirstnotof 900-901findfirstof 900-901, 929-930 
firidif 929-930, 968-970 
findiastnotof 900-90! 
firidlastof 900-901 
fins 201-202 
first 945-947 
fiag 656-657 
fioat 70-71, 118-119, 199-200,875- 
876 
<fioat h> 200-201 
floatfieid 662-663, 665-666 
floor 192-193 
flush 642-643 
fluxo de controle 81-82, 109-110,698- 
699 
fluxo de controle de uma chamada a função virtual 631 
ÍNDICE 1079 
função operador de coerção 535-536 função operador de coerção 
sobrecarregada 535-536 
função operador de extração de stream operator» sobrecarregada 543- 
544 
função operator« sobrecarregada 
571-573, 588-589 
função palindrome 1000 
função pow 77-78, 135-137, 192-193 
função predicado 413-4 14, 770, 939- 940, 959-960, 962-965, 967-970, 
973-974, 976-978, 981,983-985 
função predicado binária 939-940, 959- 960, 967-970, 973-974, 977-978, 
981, 983-986 
função predicado isFull 413-414 
função predicado unária 939-940, 962- 965 
função qualityPoints 254-255 
função que chama a si mesma 214 
função que não recebe argumentos 22!- 
222 
função raise 875-876 
função rand 199-202, 311 
função recursiva 214, 2 16-217, 763-764 
função rollDice 206-208 
função set4l3-4l4, 424-429, 462-465 
função smallest 248-249 
função sobrecarregada 229-231. 680- 683 
função sobrescrita 610-611 
função sobrescrita chama versão da classe base 575-577 
função sqrt da biblioteca de 
matemática 198-199 
função square 199-200 
função static 534-535 
função swap 334-337 
função time 205-206 
função toupper 329-330 
ftinção tripleByRefererice 259- 260 
função tripleCallByValue 259- 260 
função utilitária 413-414, 489-490, 502- 504 
função utilitária recursiva 785-786 
função virtual 583-584, 608-6 12, 
620-622, 624-625, 629-632, 880-881, 
921-922, 955, 1014-1017, 1027-1028 função virtual “impura” 622, 624- 
625 
função virtual chamada de uma referência à classe base 620-621 
função virtual em uma classe base 
620-621 
função virtual pura 609-612, 615, 6 19-620, 622, 624-625, 629-630 
funções “pré-empacotadas” 190 
funções com listas de parâmetros vazias 
221-222 
funções como blocos de construção 
192- 193 
funções contêiner da STL 92 1-922 
funções da biblioteca de matemática 
135-136, 190-193 
funções da biblioteca de tratamento de caracteres 825 
funções da biblioteca padrão ANSI 
105 1-1052 
funções de entrada/saída da biblioteca 
200-201 
funções de memória da biblioteca de tratamento de strings 839-840 
funções de pesquisa da biblioteca de tratamento de strings 834-835 
funções de union não podem ser virtual 880-88 1 
funções devem ser pequenas 194-196 
funções f ind 898-899, 900-901 
funções f ind de string 898-899 
funções friend para melhorar o desempenho 462-465 
funções insert 903-904 
funções insert de string 902-904 
funções membro 83-84 
funções membro de uma classe 404-405 
funções membro normalmente public 
402-403 
funções membro normalmente públicas 
402-403 
funções membro que não recebem argumentos 405-406 
funções não-friendlnão-membro não podem acessar membros private 
467-468 
funções não-virtual em uma classe abstrata 622, 624-625 
funções operador SI 9-5 20 
funções operador de atribuição 533-534 
funções padronizadas 192-193 
funções para manipular dados nos 
contêineres da biblioteca padrão 199- 
201 
funções personalizadas 193-194 
funções public 404-405 
<functional> 200-201, 989-990, 992 
G 
gabarito 680, 760, 763-764, 774-775, 
857-858 
gabarito autoytr 714-715 
gabarito de classe 680, 683-684, 763- 764, 785-786 
gabarito de classe adaptadora queue 
953-954 
gabarito de classe autoytr 714-715 gabarito de classe List 770, 774-775, 777, 778 
gabarito de classe lista encadeada 805- 
806 
gabarito de classe pilha 774-775, 805- 
806 
gabarito de classe Stack 684-685, 
689-690, 777 
gabarito de classe Tree 785-786 
gabarito de classe vector 930-931 
gabarito de função 23 3-234 
gabarito de função max 260 
gabarito de função mm 260 
gabarito de função printArray 680- 
681 
gabaritos de função 230-23 3, 680-684 
gabaritos efriends 690-691 
gabaritos e herança 690-691 
gcount 650-65 1 
generalidades 610-611 
generate 928-929, 955-958 
generate_n 928-929. 955-958 
geração de números aleatórios 164-165, 
273-274 
gerador de jogos de palavras cru7adas 
394 
gerador de números aleatórios 488-490 
gerando números de Fibonacci 
recursivamente 217-218 
Gerando valores para serem colocados 
nos elementos de um array 265-267 
gerenciador da tela 611-612, 621-622 
gerenciamento dinâmico de objetos 
484-485 
gerente 185-186 
get4l2-413, 423-424 
getc 858-859 
getline 356-357, 650, 890-891 
gosub 804-805 
gráfico de barras 184-185, 272-273 
gráficos de tartaruga 312-313 
gráficos orientados a objetos 1051-1052 
grafo 184-185 
gratuito 1054-1055 
greater 989-990 
greaterequal 989-990 
Green Eggs Report 1052-1053 
guillemets (« ») 302-304 
H 
handle432-436, 504-505, 571-573 
handie de objeto 407 -408, 478 
handie de referência 437 
handie implícito 406-407 
handie para ponteiro 406-407 
handie para um nome 406-407, 478 
handie para um objeto 406-407 
handier captura todas 705 
handier catch 702-703, 705, 706, 
710-7 12 
handier catch para um grupo de 
exceções 705 
handies 433-434 
hardware 50-53 
heap 954-955, 98 1-984 
1080 ÍNDICE 
heapsort 954-95 5, 981, 983-984 
help-site.com 1050 
herança 82-83, 163, 40 1-402, 406-408, 
411-412, 441-442, 452, 462-465, 
564-566, 57 1-573, 585, 595-597, 
621-622, 680, 803, 955 
herança de classe base virtual 1028- 
1029 
herança de implementação 622, 624- 
625 
herança de interface 622, 624-625 herança de uma classe base abstrata 
611-612 
herança diamante 1026 
herança múltipla 82-83, 564-567, 588- 589, 59 1-595, 639-640, 1026 
herança para explorar as características comuns entre classes 366 
herança private 564-565, 567-568, 57 1-573, 577-578, 774-775 
herança private como uma forma de composição 577-578 
herança protected 564-565, 567- 568, 577-579 
herança public 564-565, 567-568, 582-585, 587. 589-590, 615, 619- 
620, 616, 708-709, 1005-1006 herança simples 564-565. 594-595, 
1026 
herança virtual 1028-1029 
herda membros de dados e funções membro de uma classe base 564 
Hewlett-Packard 917-918 
hex 651-652, 665-666 
hexadecimal 184-185, 641-642, 661- 664, 833-834 
hierarquia 577-579, 611-612 
hierarquia de categorias de iteradores 
926-927 
hierarquia de classes 577-579,611-612, 62 1-622, 635-636, 803 
hierarquia de classes de EIS em stream 
729-730 
hierarquia de classes de exceção 716- 
717 
hierarquia de classes Employee 612- 
613 
hierarquia de classes Shape 104-105, 
624-627 
hierarquia de dados 727-7 29 
hierarquia de exceções da biblioteca padrão 716-7 17 
hierarquia de formas 606 
hierarquia de herança 566-567, 573- 574, 589-590, 605-606, 608-609, 
611-612, 1016-1017 
hierarquia de herança polimórfica 1016- 
1017 
hierarquia de promoção para tipos de dados primitivos 199-200 
hierarquia padrão exception 716- 
717 
hierarquia Shape 566-567 
hierarquias no mundo real 566-567 
hipotenusa 185-186 
histograma 184-185, 272-273, 286-288 
homepage do Microsoft Visual C++ 
1054- 1055 
homepage do Visual C++ 1054-1055 
hora de calendário 205-206 
hora em que o arquivo-fonte foi 
compilado 86 1-862 
horário normal 178-179 
IBM 54-55 
IBM Coi-poration 57-58 
identificador(es) 70-7 1, 102-104,211- 212 
identificadores globais 1009-1010 
identificadores para nomes de variáveis 
208-209 
identificar as classes 160 
ifstreain640-64l, 728-731, 733- 735, 744-746, 87 1-872 
#if 859-860 
#include 856 
#include “nomeDeArquivo” 856 
#include <cstring> 873-874 
#include <iomanip> 119-120, 
657-658 
#include <iostream> 66-67 
ignorando espaço em branco 651-652, 
657-658 
ignorar o caractere de retorno (enter) 
485-486 
ignore 522-523, 650-651 
igual a 77-7 8 
imagem executável 61, 63 
imagem gráfica 639 
implementação 301, 409-410 
implementação de uma classe 404-405, 408-409, 412 
implementação de uma função 615. 
6 19-620 
Implementação do tipo de dado abstrato Time como uma classe 402-403 
Implementando uma classe proxy 482- 
483 
implicitamente virtual 608-609 imprecisão de números em ponto 
flutuante 135-136 
impressora63, 639, 778 imprimindo caractere diferente de 
espaço 825 
imprimindo caractere diferente de espaço, dígito e letra 827-828 
imprimindo características de um string 897-899 
imprimindo datas 39 1-392 
imprimindo em múltiplas linhas com um único comando, usando cout 
69-70 
imprimindo em uma linha com comandos separados usando cout 
69-70 
imprimindo o valor de uma union nos dois tipos de dados do membro 881- 
882 
imprimindo recursivamente do fim para o início dados udos do teclado 220- 
221 
imprimindo um inteiro com espaçamento intemo e forçando o sinal mais 660-661 
imprimindo um inteiro sem sinal em binário 8 15-816 
imprimindo um string, um caractere de cada vez, usando um ponteiro nãoconstante para dados constantes 330- 
331 
imprimindo uma árvore 795 
imprimindo uma árvore binária em um formato de árvore bidimensional 
787-788 
imprimir um array do fim para o início recursivamente 220-221 
imprimir um array recursivamente 220- 
221, 317-318 
imprimir um string do fim para o início recursivamente 220-221, 317-318 
imprimir um string lido do teclado do 
fim para o início recursivamente 220- 
221 
imprimir uma linha de texto 66-67 imprimir uma lista do fim para o início 
793-794 
imprimir uma lista do fim para o início recursivamente 793-794 
imprimir uma lista encadeada do fim para o início 763-764 
imprimir uma lista encadeada do fim para o início recursivamente 220-221 
includes 976 
incluir um arquivo de cabeçalho 408- 
409 
incluir um arquivo de cabeçalho múltiplas vezes 411-412 
inclusão circular 43 8-439 
incrementar o contador de instruções 
800-801 
incrementar um iterador 927-928 
incrementar um ponteiro 338-339 
incremento de uma variável de controle 
13 1-133 
incremento ou decremento de uma variável de controle 126 127 
indentação 68-69, 80-82, 103-108. 129- 130 
independente de implementação 412, 
445-446 
ÍNDICE 1081 
indicador 798-799 
indicador de fim de arquivo 647-649, 
732-734, 87 1-872 
indicador de justificação 660-661 
indicador dec 657-658, 66 1-662, 665- 666 
indicador fixed 657-658, 662-663, 
665-666 
indicador hex 657-65 8 
indicador internal 657-660, 665- 666 
indicador ios: : Left 348, 657-658, 
665-666 
indicador ios: : scientific 657- 658, 662-663, 665-666 
indicador ios: skipws 657-658 indicador ios: : uppercase 657- 658, 663-664 
indicador left 657-058, 658-059, 660- 661. 665-666 
indicador oct 657-658, 66 1-662, 665- 666 
indicador right 657-661, 665-666 indicador scientific 657-658, 662- 663, 665-666 
indicador showbase 657-658, 661- 662 
indicador showpos 657-658, 660-661, 
664-665 
indicador skipws 657-658 
indicador uppercase 657-658, 661- 664 
indicadores antes de serem desligados 
665-666 
indicadores de erro 650-651 
indicadores de formato 65 1-652, 656- 657, 663-665 
indicadores de justificação internal 
660-661 
indireção 320-321 
inft)rmação de grafo 272-273 
informação sobre tipo 750-751 
informação sobre tipo durante a execução (RTTI) 199-201, 564, 568- 569, 1004, 1013-1014 
inicialização da largura 654-655 inicialização de array automático 276- 
277 
inicialização de array static 275-277 
inicialização de membros 499-500 
Inicialização e uso corretos de uma variável constante 267-268 
inicializador = O (em classes virtuais puras) 609-610 
inicializador 265-267, 417, 420, 577- 579 
inicializador de classe base 577-579 inicializador de membro 453-454, 456- 459, 533-534, 543-544, 57 1-573, 
575-579, 58 1-582 
inicializador de membro para um 
membro de dados const 459-460 
inicializador de objeto membro 461-465 
inicializadores default 4 19-420 
Inicializando arrays multidimensionais 
294 
“inicializando duplamente” objetos membros inicializados 462-465 
inicializando objetos de classe 413-414, 4 16-417, 446-447 
Inicializando os elementos de um array com uma declaração 265-267 
Inicializando os elementos de uni array com zeros 264-265 
inicializando um ponteiro declarado const 332-333 
inicializar com um comando de atribuição 457-459 
inicializar com zero 110-111 
inicializar em um estado consistente 
4 17,420 
inicializar o valor de um membro de dados private 413-414,446-447 
inicializar os membros da classe base de uma classe derivada 5 77-579 
inicializar ponteiro com O (nulo) 770 
inicializar um ponteiro 32 1-322 
inicializar uma constante de um tipo de dado primitivo 457-45 8 
inicializar uma estrutura 809-8 10 
inicializar variável static em escopo de arquivo 475-476 
início de um arquivo 735 
início de um stream 73 5-736 
início de uma fila 48 1-482, 760, 778 
mime 222-223, 405-406, 5 19-520, 534-535, 545. 858-859, 989-990 
inneryroduct 929-930, 984-985 
inOrderTraversal 786-787 
inplace_merge 974-975 
input 798-799 
inserção 482-483, 760 
inserção em lista encadeada com recursividade 220-221 
inserção em stream 67-68, 69-70 
inserção no fim de um vector 929- 
930 
inserção recursiva em árvore binária 
220-22 1 
inserir a posição de memória na pilha 
799-800 
insert 902-904, 936, 945-946, 948- 949 
instanciado 83-84, 396-397 
instrução 6 1-63 
instrução assistida por computador 
(CAI) 254-255 
instrução branch zero da SML 800- 801 
instrução de desvio incondicional 803 instrução desviar se zero 799-802 
instrução halt em SML 803 
instrução ilegal 875-876 
int & 224-225, 226-227 
int * 326-327 
int * const 326-327 
int6l-68, 70-71, 198-199 
int& 226-227 
integridade da classe base preservada 
por herança 583-584 
integridade de uma estrutura de dados 
interna 481-482 
inteiro 67-68, 70-71. 18 1-182 
inteiro binário 18 1-182 
inteiro criptografado 182-183 
inteiro ímpar 182-183 
inteiro par 182-183 
inteiro sem sinal em binário 815-8 16 
inteiros aleatórios no intervalo de 1 a 6 
20 1-202 
inteiros começando com O (octal) 661- 
662 
inteiros começando com Ox ou OX 
(hexadecimal) 66 1-662 
inteiros deslocados e ajustados a uma 
escala 202-203 
inteiros deslocados e ajustados a uma 
escala produzidos por 1 + rand O 
% 6 201-202 
inteiros hexadecimais 322-324 
interações entre objetos 365 
intercalar dois objetos lista ordenados 
790-79 1 
intercambiabilidade de arrays e 
ponteiros 343-344 
interface 396-397, 404-405, 408-4 lO, 6 11-612 
interface de uma classe 40 1-402, 404- 
405 
interface permanece a mesma 428-429 
interface protected 564-565 
interface public 404-405, 408-409, 412-413,570-572,587,611-612 
interface que pode ser herdada 609-610, 622, 624-625 
interfaces 83-84 
International Standards Organiation 
(ISO) 50-51, 56, 481-482 
lnternet 5 1-52, 63-66 
Internetworking Protocol (1P) 63-64 
interpretador de Simple 805-806 
interrupção 875-876 
intervalo 968, 970 
intervalo arbitrário de subscritos 480- 
481 
intervalos aleatórios 793-794 
Intranets 57-61, 63-64 
introdução à STL na Web 1000. 1055- 
1056 
invalidargument 7 16-717 
1082 INDICE 
invocando uma função membro nãoconst sobre um objeto const 452- 
453 
invocar uma função 190-191, 193-194 
ios 1026 
ios: adjustfield 660-663, 665- 
666 
ios: :app73O-732 
ios: :ate73l-732 
ios: badbit 665-666 
ios: beg 735-736 
ios: :binary 73 1-732. 744-746 
ios: : cur 735-736 
ios: dec 657-658, 66 1-662, 665-666 
ios: end 735-736 
ios: : eofbit 665-666 
ios: : failbit 665-666 
ios: :fixed 119-120, 137, 657-658, 
662-663. 665-666 
ios: floatfield 662-663, 665- 
666 
ios: goodbit 661-662, 665-666 
ios: :hex657-658, 661-662 
ios: : in 73 1-735, 746-747 
ios: : internal 657-658, 665-666 
ios: : oct 657-658, 661-662, 665-666 
ios: : out 731-732, 746-747 
ios: : right 348, 657-658, 665-666 
ios: : showbase 657-662 
ios: :showpoint 119-120, 137, 
657-658, 664-665 
ios: showpos 657-658, 660-661, 
664-665 
ios: trunc 73 1-732 
iostreain 728-729 
IP 63-64 
isalnum 825 
isalpha 825 
iscntrl 825. 827-828 
isdigit 825-827 
isgraph 825, 827-828 
islower 329, 825-827 
ISO 50-51 
isprint 825, 827-828 
ispunct 825, 827-828 
isspace 825, 827-828 
istreajuiterator 923-925 
istringstream 907-910 
isupper 825-827 
ISV 621-622 
isxdigit 825 
<iomanip . h> 200-20 1 
<iomanip> 200-20 1 
<iostream.h> 200-201 
<iterator> 200-201, 974-976 
iterswap 928-929, 971 
iteração 2 19-220 
iterador “após o fim” 967 -968 
iterador482-483,680-68 1, 906-908 
iterador apontando para o primeiro 
elemento após o fim do contêiner 
923-924 
iterador bidirecional 925-927, 930-931, 937, 943-944, 946, 947-948, 973- 
976, 985 
iterador de acesso aleatório 925-927, 930-93 1, 933-934, 940-941, 943-944, 
959-960, 967-970, 976, 981-986 iterador de entrada 925-927, 959-960, 
962-963, 965-968, 973-974, 976-978, 
985-986 
iterador de saída 925-927, 956-957, 965-966, 976-978, 985-986 
iterador do stream de entrada 923-924 
iterador de stream de saída 923-924 
iterador end 927-928 
iterador para a frente 925-926, 930-931, 964-965, 97 1-972, 974-975, 985-986 
iterador para o próximo elemento de um contêiner 923-924 
iterador typedef 926-927 
iteradores de comparação 927 
iterativo 214-215 
iterator 917-918, 920-924, 927, 
945-946 
J 
Jacobson, Ivar 84 
Jacopini, G. 101-103, 154-155 
japonês 480-48 1 
Java 5 1-52, 57-60 
Java Como Programar: Terceira Edição 
57-58 
jogando 199-201 
jogando cartas 345-346 
jogo da forca 914-915 
jogo de “adivinhar o número” 255-256 
jogo de azar 206-208 
jogo de craps 206-209 
jogo de dados 206-208 
jogos de cartas 345-346 
juros compostos 134-135, 183-186, 188 
juros compostos usando for 134-135 
juros sobre depósito 186, 188 
justificação à direita 137, 348, 657-660 
justificação à esquerda 105-106, 137, 348, 658-660 
justificação à esquerda e justificação à 
direita 659-660 
K 
Kernighan and Ritchie C 56 KIS (“mantenha-o simples” - Keep It Simple) 64-65 
Koenig, A. 697 
L 
L sufixo de inteiro 875-876 
1 sufixo de inteiro 875-876 
L sufixo de ponto flutuante 875-876 
1 sufixo de ponto flutuante 875-876 
Lobo ratory for Computer Science 63-64 
laço 109-111, 115 
laço aninhado dentro de um laço 121- 
122 
laço controlado por contador 113-114, 
120- 122 
laço controlado por sentinela 117-118, 
382-383, 796-79] 
laço de contagem 128-129 
laço de retardo 132-133 
laço de simulação 30 1-302 
laço infinito 109-110, 118-119, 131132, 143-144, 181-182. 216-217 
lado esquerdo de uma atribuição 149- 
152, 262-263, 428-429, 53 1-532 
lados de um quadrado 185-186 
lados de um triângulo 182-183 
lados de um triângulo retângulo 182- 
183 
lançamento de moeda 20 1-202, 254- 255 
lançando dois dados 206-208, 311 
lançando um dado 202-203 
Lançando um dado de seis faces 6000 vezes 202-203 
“lapidar classes valiosas” 83-84 
lapidando classes valiosas 405-406 
largura de campo 137, 263-264, 641- 642,651-652,654-655 
largura de um campo de bits 822-823 largura de um intervalo de números aleatórios 205-206 
largura inicializada implicitamente com 
O 654-65 5 
Lee, Meng 917-918 
legibilidade 66-67, 103-104, 121-122, 193- 194 
leiaute não-contíguo de uma fila duplamente encadeada na memória 
940-941 
Leis de DeMorgan 185-186 leitura a partir de um string na memória 
201 
leitura de arquivo 640-641 Leitura de caracteres com a função 
membro getline 650 
leitura não-destrutiva 73-74 lendo de strings na memória 907- 
908 
Lendo e imprimindo um arquivo 
seqüencial 734-735 
Lendo seqüencialmente um arquivo de 
acesso aleatório 744-746 
length 898-899 
length_error 716-717, 890-891 
ler dados 63 
ler dados de um arquivo 
seqüencialmente 733-734 
ler uma linha de texto 650 
ler uma linha de texto inteira para um 
array 356-357 
less 989-990 
lessequal 989-990 
ÍNDICE 
1083 
162- 
loglO 192-193 
log2n 7 87-788 
logaritmo 192-193 
logaritmo natural 192-193 
logic_error 7 16-717 
lógica de desvio 608-609 
lógica de switch 142-143, 608, 632- 633 
loja de vendas pelo correio 184-185 
long 142-143, 198-199, 875-876 
long double 199-200, 875-876 
long int 142-143, 199-200, 216-217 
losango - símbolo de decisão 102-105, 109-110. 132-133 
losango 96-97, 101-103, 105-106, 163, 237-238 
losango cheio 162-163 
lote 5 3-54 
less< double >946-947 
linha 76-77 
less< int > 943-945, 947-948 
linha cheia com uma ponta de seta 237- 
letra 354-355 
238 
letra minúscula 825-827 
linha com uma ponta de seta cheia 301- 
letras maiúsculas (A-Z) 826-827 
302 
letras maiúsculas 70-71, 96-97, 200- 
linha de comando 868 
201, 329, 825 
linha de comando do UNIX 61, 63, 868- 
letras minúsculas 70-71, 96-97, 109- 
869 
110, 200-201, 329, 727-729 
linha de comunicação com um arquivo 
lexicographical compare 957- 
73 1-732, 734-735 
960 
linha de fluxo 101-105 
liberar memória 714-715, 761-762 
linha de texto 650 
licença 583-584 
linha de vida 30 1-304 
licenciamento 431-432 
linha em branco 71-72, 116 
LIFO 479-480, 683-684, 686-688, 774- 
linha reta 76-77 
775, 9 19-920, 950-951 
linhas 292-293 
ligação 61, 63, 208-209, 874, 1012- 
linhas de comunicação dedicadas 63-64 
1013 
link 61-63, 408-409, 760-761, 780-781 
ligação externa 873-874 
link com ponteiro 762-763 
Lovelacc. Lady Ada 58-59 
ligação interna 873-874 
links 164 
lowerbound978-981, 983-984 
ligação segura quanto ao tipo 230-231, 
links do editor de ligação 61, 63 
Ivalue (“valor da esquerda”) 126-127, 
883-884 
list 917-920, 922-923, 926-927, 929- 
150-152, 226-227, 262-263, 321-324, 
limerick 389-390 
931 List< STACKTYPE > 777 
428-429, 53 1-532, 534-535, 545-546, 927, 942-943 
limite de alinhamento dependente de 
lista 760-761 
Ivalues como rvalues 150-152 
máquina 761-762 
lista circular duplamente encadeada 
limite de crédito em uma conta de 
773-774 
M 
cartão de crédito 177-178 
lista circular simplesmente encadeada 
Macintosh 654-655, 732-733 
limite de palavra 809-810 
773-774 
macro 199-200, 680-681. 868-869, 870- 
limite de palavra dupla 809-810 
lista de argumentos de tamanho variável 
871 
limite de uma unidade de 
869-870 
macros definidas no cabeçalho 
armazenamento 24-825 
lista de argumentos separados por 
<cstdarg> 868-869 
limite de unidade de memória 824-825 
vírgulas 191-193 
magnitude 660-661 
limites de array 272-273 
lista de classes base separadas por 
magnitude justificada à direita 657-658 
limites de tamanho de ponto flutuante 
vírgulas 594-595 
main 66-73, 193-194, 42 1-422, 874 
200-201 
lista de disparo 708-709 
maior elemento de uma coleção 556- 
limites de tamanho integrais 200-201 
lista de inicializadores 265-267, 355- 
557 
limites de tipos de dados numéricos 
356 
maior inteiro não maior do que 192-193 
199-201 
lista de inicializadores de array 265-267 
maior que 77-78 
<lirnits . h> 200-201 
lista de inicializadores de membros 460- 
maior que ou igual a 77-78 
<limits> 199-201 
461,486-487,594-595 
makeheap 981, 983-984 
<list> 200-201, 92 1-922 
lista de inicializadores separados por 
makefile 874 
linguagem C++ 65-66 
vírgulas 809-8 10 
malloc 471, 473-475. 877-878 
linguagem de máquina 55-56, 209-210, 
lista de parâmetros 194-195 
Manhattan 186. 188 
800-801 
lista de parâmetros de função vazia 222- 
manipulação de bits 813-814 
linguagem de programação 55-56 
223 
manipulação de campos de bits 824-825 
linguagem de programação C++ 59-60 
lista de parâmetros void 194-195 
manipulação de caracteres 190-191 
linguagem extensível 216-217, 272- 
lista duplamente encadeada 773-774, 
manipulação de ponteiro perigosa 629- 
273, 402-403, 480-481 
9 19-920, 937 
630 
linguagem híbrida 56-57, 466-467 
lista encadeada 482-483, 760, 762-765, 
manipulação de ponteiros 629-630, 760 
linguagem Logo 312-313 
767-768, 773-774 
manipulação de strings 190-191. 801- 
linguagem natural de um computador 
lista encadeada de objetos de classe 
802 
55-56 
base 564-565 
manipulação de strings de caracteres 
linguagem portável 65-66 
lista indexada 806 
824-825 
linguagem sem tipos 56 
lista separada por vírgulas 80-81, 131- 
manipuladorboolalpha 1005-1006 
linguagem simbólica 55-56 
132, 191-195, 320-321, 456-457 
manipulador de stream 72-73. 119-120, 
linguagem Simple 796 
lista simplesmente encadeada 773-774 
137, 65 1-652, 655-657, 660-661, 735 
linguagens de alto nível 55-56 
literal 7 1-72 
manipulador de srream dec 65 1-652 
linguagens de programação procedurais 
livros sobre C++ 1050 
manipulador de stream não 
83-84, 396-397 
<locale> 199-201 
parametrizado 119-120 
linguagens orientadas a objetos 59-60 
log 192-193 
ÍNDICE 1085 
multiprogramação 54-55 
multiset 9 19-922, 926-927,942- 943, 945-947 
multiset< iflt, less< int» 
944-945 
mu/titasking 58-59 
multithreading 698-699 
Musser, David 917-918 
mutable 208-209, 460-461, 1023- 1024 
mutuamente exclusivo 660-66 1 
N 
nainespace 1009-1010, 1012-1013 
nainespace aninhado 1012-1013 
namespace global 1012-1013 
namespace. 1010-1011 
namespaces predefinidos 1010-1012 
não pode ser alocado espaço 878-879 
não-igual 77-78 
NDEBUG 861-862 
nega te 990-991 
new 471,473-475, 485, 533-534, 761- 
763, 877-878, 936 
<new.h>713 
<new>7l1-713 
new chama o construtor 471, 473-474 
new disparando bad alloc em caso 
de falha 712 
new disparando uma exceção se a 
memória disponível é insuficiente 
575-577 
new falha 710-711 
new falha na alocação de memória 699- 
700 
new retornando O em caso de falha 
711-713 
new teve sucesso 543-545 
newhandler 699-700 
nível de “hits e bytes” 813-814 
nível de indentação 105-106 
nível mais alto de precedência 75-76 
nodo 762-763 
nodo de rede 77X 
nodo esquerdo 785-7 86 
nodo filho 794-795 
nodo folha 793-794 
nodo mais à direita de uma subárvore 
794-795 
nodo pai 780-781, 793-794 
nodo raiz 780-781, 785-786 
nodo rai7 da subárvore direita 780-781 
nodo raiz da subárvore esquerda 780- 
781 
nodo substituto 794-795 
nome com subscrito usado como um 
rvalue 53 1-532 
nome de arquivo 730-731, 733-734, 
861-862 
nome de array 340-342 
nome de array como um ponteiro 324- 
325 
nome de array como um ponteiro constante 340-342 
nome de array como um ponteiro constante para o início do array 331- 
332 
nome de atributo 236 
nome de estrutura 808, 808-809 
nome de função 190-193, 210-211,349- 
350, 873-874 
nome de parâmetro em um tratador 
catch 703-704 
nome de um arquivo-fonte 86 1-862 
nome de um array 263-264, 324-325 
nome de um elemento de array com 
subscrito 278-279 
nome de uma atividade 237-23 8 
nome de uma função 191-193 
nome de uma variável 73-74, 208-209 
nome de uma variável de controle 126- 
127 
nome de variável 796 
nome de variável de controle 13 1-132 
nome de variável global 873-874 
nomes de função adulterados 230-231 
nomes de operações 299-300 
nomes de parâmetros em protótipos de 
funções para documentação 197-198 
nomes de variáveis em protótipos de 
função 279-281 
nomes significativos 194-196 
not 1016-1017 
NOTlógico(!) 146-147, 185-186, 
1016- 1017 
noteq 1016-1017 
notequalto 990-991 
notação científica 119-120,641-642 
notação com colchetes duplos para 
arrays bidimensionais 545-546 
notação de array 341-342 
notação de ponteiro 34 1-342 
notação de ponto fixo 657-658 
notação fixa 641-642 
notação hexadecimal 641-642 
notação infixa 79 1-792 
notação ponteiro/deslocamento 341-342 
notação ponteiro/subscrito 341-342 
notação pós-fixa 79 1-792 
nothrow 713 
nothrowt 713 
nova linha (‘ \n’) 68-69, 72-73, 80-8 1, 
354-355, 642-646, 827-828 
nova linha 68-69 
novo bloco de memória 878-879 
novo estilo de coerções 1005-1006 
novos manipuladores de stream 655-656 
novos operadores de coerção 1006-1007 
nthelement 985 
NULL 32 1-322, 832-835 
nulo (O) 357-358. 760-761 
número binário 825 
número correto de argumentos 194-195 
número da posição 262 
número de argumentos 194-195 
número de elementos em um array 337- 
338 
número de linha 796, 798-800, 86 1-862 
número de ponto flutuante 113-114, 116, 118-119, 120-121 
número de ponto flutuante em formato 
científico 662-663 
número do sinal 875-876 
número hexadecimal (base 16) 644-645, 65 1-652, 657-658, 66 1-662, 832-833 
número ímpar 186, 188 
número não-especificado de 
argumentos 868-869 
número octal 641-642, 66 1-662, 825, 
833-834 
número perfeito 254-255 
número primo 987-988 
número real 116 
números aleatórios 203-204, 273-274 
números complexos 448-449. 556-557 
números de Fibonacci 2 19-220 
números decimais 184-185, 661-662, 825 
números inteiros 70-7 1 
números mágicos 269-270 
números pseudo-aleatórios 203-204 
o 
o arquivo-fonte de data é compilado 
86 1-862 
o encontro de caminhos de decisão 238 
o menor dentre vários inteiros 183-184 
O operador sizeof quando aplicado a um nome de array retorna o número de bytes no array 336-337 
o resultado do deslocamento de um valor com sinal para a direita é 
dependente de máquina 820-82 1 
Object Constraint Language (OCL) 164 
Object Management Group (OMG) 84 
objeto 5 1-52, 56-57, 59-60, 83-84, 155- 156, 396-397 
objeto autoptr fica fora de escopo 
7 14-7 15 
objeto automático 699-700, 710-711 
objeto automático local 423-424 
objeto cliente 298-299 
objeto const 268-269, 398-399 
objeto const deve ser inicializado 
268-269 
objeto da classe derivada é um objeto da classe base 57 1-573, 582-583 
objeto de classe derivada 705 
objeto de entrada em stream (cm) 70- 
72 
objeto de saída padrão (cout) 67-68. 639-640, 728-729 
1086 ÍNDICE 
objeto disparado 703-705 
objeto do stream de entrada padrão 728- 
729 
objeto exceção 702-703 
objeto exceção de divisão por iero 702- 
703 
objeto fila 793-794 
objeto função 943-944, 947-948, 989- 992 
objeto função binária 990-991 
objeto função de comparação 943-944, 
947-948 
objeto função de comparação less 
943-944. 954-955 
objeto função less< int > 943-945 objeto função less< T > 947-948, 
954-955 
objeto função pode encapsular dados 
992 
objeto grande 225-226 
objeto hospedeiro 460-461 
objeto interage 396 
objeto iterador482-483, 918-919 
objeto local automático 421-422 
objeto local static 42 1-424 
objeto que envia 298-299 
objeto que recebe 298-299 
objeto sai do escopo 420-421 
objeto sem nome 88 1-882 
objeto servidor 298-299 
objeto Stririg temporário 544-545 
objeto temporário 535-536 
objetos 82-83 
objetos automáticos em um bloco try 
706 
objetos componentes 437 
objetos contêm somente dados 406-407 
objetos criados dinamicamente 435-436 
objetos da classe derivada tratados como objetos da classe base 582-583 
objetos de superclasse duplicados 1026- 
1027 
Observações de engenharia de software 
60-61 
obtém o valor de 79-80 
obter o valor de um membro de dados private 4 12-413 
obter ponteiro 735 
oct 65 1-652 
octal 184-185, 66 1-662 
ocultação 462-465 
ocultação de informações 83-84,211- 212, 334-335, 396-397, 404, 413- 
414.479-480 
ocultando a implementação 405-406 ocultando detalhes de implementação 
190-191 
ocultar a implementação 479-480, 484- 485 
ocultar dados private dos clientes 
408-409 
ocultar detalhes de implementação 479- 
480 
ocultar nomes em escopos mais 
externos 211-212 
ocultar uma representação de dados 
interna 481-482 
ofstream728-735, 742-746, 87 1-872 
Oito Rainhas 3 16-317 
Oito Rainhas com recursividade 220- 
221, 317-318 
Oito Rainhas: abordagens de “força 
bruta” 316-317 
“olho de boi” 237-238 
OMG 84 
OOAD 84 
OOD 8 1-82 
OOP 82-84 
opção de compilador 65-66 
opções combinadas por ou 656-65 7 
opções de menu 746-747 
operação com stream falhou 665-666 
operação de enfileirar 481-482 
operação de retirada da fila 481-482 
operação de sincronização de um 
istream e um o,streo,fl 667-668 
operações 16 1-162, 234-235, 298-299, 30 1-302, 363-364 
operações com iterador de acesso aleatório 927-928 
operações com iteradores bidirecionais 
927-928 
operações com iteradores para a frente 
927 
operações de classes 366-367 
operações de entradalsaída 101-103 
operações de iterador 927 
operações implementadas como funções 
234-235 
operações permitidas sobre dados 480- 
481 
operador && 148-149 
operador [] sobrecarregado 531-532 
operador + 985 
operador += 893-894 
operador + sobrecarregado 550-55 1 
operador < 985-986 
operador « 1004-1005 
operador « sobrecarregado 519-520, 545, 64 1-642 
operador 67-68, 124-125 
operador- 922-923 
operadorAND sobre bits (&) 814-819, 851 
operador AND sobre bits com atribuição 
(&=) 820-821 
operador auto_ptr sobrecarregado * 
716-717 
operador autoytr sobrecarregado - 
>715-716 
operador binário + 74-75 
operador binário 72-75, 148-149 
operador binário de resolução de escopo 
(: :) 228-229. 404-405, 475-476, 594-595, 1009-1010, 1026 operador condicional (?:) 105-106 operador condicional ternário (?: ) 219, 
5 18-5 19 
operador const cast 1007-1008. 
1023- 1024operador de acesso a membro (.) 397- 398 
operador de adição com atribuição (+=) 
124- 125 
operador de adição com atribuição (+) sobrecarregado 550-551 
operador de atribuição (=) 72-73, 81-82, 126-127, 430-431. 516-517, 922-923 
operador de atribuição (= 
sobrecarregado 530-531, 533-534, 
543-545. 582-583 
operador de atribuição e deslocamento à direita com extensão do sinal 820- 
821 
operador de chamada de função O 545- 
546, 630-632, 715-7 16 
operador de chamada de função O sobrecarregado 545-546 
operador de coerção 116, 118-119, 198- 199, 340-341, 535-536, 1004-1006, 
1017-10 18 
operador de coerção dynaiuic_cast 
1015-1016 
operador de complemento (-) 814-815 operador de complemento sobre bits (-) 
816-8 17, 819-821 
operador de concatenação + sobrecarregado 545 
operador de concatenação de string sobrecarregado 544-545 
operador de concatenação 
sobrecarregado 544-545 
operador de decremento unário (-) 125 operador de derreferência de ponteiro 
(*) 397-398, 630-632 operador de derreferenciação (*) 322- 
324 
operador de desigualdade sobrecarregado 530-531, 534 
operador de deslocamento à direita (») 
516, 640-641, 814-815. 820-821, 851 
operador de deslocamento à direita sobre bits (»)516 
operador de deslocamento à esquerda 
(«)5l6, 640-641, 814-815, 819- 
821. 850-851 
operador de deslocamento à esquerda com atribuição 820-821 
operador de deslocamento à esquerda sobre bits («) 516, 8 19-820 
operador de deslocamento sobre bits 
8 19-820 
INDICE 1087 
operador de endereço (&) 321-322, 324- 325, 334-335, 5 16-517, 1026 
operador de extração de síream» 
(“obter de”) 70-72, 230-231, 516, 
520-521, 532-533, 640-64!, 645-648, 
733-734, 750-751, 890-89! 
operador de extração de stream » sobrecarregado 643-646 
operador de extração de streun? em uma condição de continuação de laço 647- 
648 
operador de extração de stream retornando false no fim de arquivo 
647-648 
operador de extração de síream sobrecarregado 530-532 
operador de igualdade ( e ! =) 146- 147, 524-525 
operador de igualdade = 922-923 operador de igualdade (=) 
sobrecarregado 531-532, 534, 545 
operador de igualdade 79-80 
operador de incremento 125, 546-547 
operador de incremento sobrecarregado 
547-548 
operador de incremento unário (++) 125 
operador de indireção (*) 322-325 
operador de inserção em stream « 
(“enviar para”) 72-73, 230-231, 516, 
520-521, 532-533, 594-595, 640-642, 
733-734 
operador de inserção em stream « sobrecarregado 643-644 
operador de inserção em siream sobrecarregado 530-53 1, 549-55 1, 570-572, 594-595, 750-751 
operador de membro de estrutura (.) 
880-881 
operador de negação lógica () 146-149 operador de negação sobrecarregado 
545 
operador de pós-decremento 125 
operador de pós-incremento 125 
operador de pós-incremento 
sobrecarregado 549-551 
operador de pré-decremento 125 
operador de pré-incremento 125 
operador de pré-incremento 
sobrecarregado 549-551 
operador de resolução de escopo (: :) 
397-398, 475-476. 573, 577-578. 
594-595. 686-688, 690-691. 1009- 
1010. 1012-1013, 1026 
operador de saída sobrecarregado 750- 
751 
operador de seleção de membro (.) 
397-398. 406-407. 469-470, 608-609, 
615-616, 618. 620-621. 716-717 
operador de seleção de membro seta (- 
>) 406-407 
operador de subscrito sobrecarregado 
53 1-532, 534-535, 545-546, 556-557 
operador delete 621-622, 761-762 
operador dynamic cast 1014-1015 
operador menor do que sobrecarregado 
545 
operador menor que < 922-923 
operador módulo (%) 74-75, 96-97, 181- 182, 201-202, 205-206 
operador OR exclusivo sobre bits () 
814-817, 819 
operador OR exclusivo sobre bits com atribuição (=) 820-821 
operador OR inclusivo sobre bits (1) 
814-817, 819 
operador OR inclusivo sobre bits com atribuição (1=) 820-821 
operador parênteses ( o) 75-76, 119- 120 
operador ponto (.) 397-398, 406-407, 
469-470. 608-609, 615-616, 618-621, 
716-7 17 
operador relaciona! 79-80 
operador seta (->) 397-398, 469-470 
operador sizeof 336-338, 757-758. 809-8 10 
operador subscrito [] 892-893 
operador subscrito [] usado com strings 890-891 
operador subscrito 942-943 
operador subscrito de array ([1) 531- 532 
operador subscrito de um mapa 949- 
950 
operador unário 119-120, 148-149, 32!- 322, 518-519 
operador vírgula (,) 131-132, 219 
operador(es) re!acional(is) 77-78, 130- 131 
operadores aritméticos 74-75 
operadores aritméticos binários 119-120 
operadores binários sobrecarregados 
518-5 19 
operadores condicionais 106-107, 646- 647 
operadores de atribuição abreviados 
124- 125 
operadores de atribuição da classe base não-herdados pela classe derivada 
577-579 
operadores de atribuição sobre bits 820- 
821. 986-987 
operadores de conversão 535-536, 1005- 1006 
operadores de decremento 125, 546-547 
operadores de igualdade 77-78, 104-105 
operadores de inserção em strealn e extração de stream definidos pelo usuário 520-521 
operadores de inserção/extração de strea,n 643-644 
operadores de ponteiros 322-324 
operadores lógicos 146-147 
operadores multiplicativos . 1. % 119- 120 
operadores ponteiros para membros de classe 1004 
operadores que devem ser não-membros 
522-523 
operadores que podem ser 
sobrecarregados 517-518 
operadores relacionais >, <. >=. e <= 
146-147 
operadores sobre bits 813-815, 820-821 
operadores sobrecarregados 525-526 
operadores unários mais (+) e menos 
(-) 119-120 
operadores unários sobrecarregados 
518-5 19 
operando 72-75, 105-106, 3t2, 791-799 
operando da direita 67-68 
operandos int promovidos para 
float 118-119 
operator void* 735 
operator’ 545 
operator ‘ = 534, 920-921 
operator O) 545-546. 556-557, 989- 
990, 992 
operator [] 545-546, 703-704 
operator+ 516-5 17 
operator++ 546-547, 55 1-552 
operator++ ( int) 546-547 
operator+= 544-545 
operator< 545. 920-921 
operator« 522-523, 531-532, 543- 
544, 562. 573 
operator<= 920-921 
operator= 533-534, 544-545, 920- 
92! 
operator== 534, 545, 920-921, 959- 
960 
operator> 920-921 
operator>= 545, 920-921 
operator»52l-523, 531-532. 543- 
544 
or 1016-1017 
OR exclusivo sobre bits 1016-1017 
OR inclusivo sobre bits 1016-1017 
ORlógico(l 1)146-147,185-186,819, 
1016-10 17 
OR lógico sobre bits 986-987 
oreq 1016-1017 
ordem de avaliação de operadores 96 
ordem de avalização 75-76, 219 
ordem de classificação 969-970, 973- 
974 
ordem de construção 577-579 
ordem de construção de objetos membro 577-579 
ordem de término vinda do sistema operacional 875-876 
ordem inversa dos bits em um inteiro sem sinal 851 
1088 ÍNDICE 
ordem na qual as ações devem ser executadas 100-101. 110-111 
Ordem na qual construtores e destruidores de classe base e classe derivadas são chamados 579-580 
ordem na qual construtores e destruidores são chamados 421-423, 
434-435 
ordem na qual destruidores são chamados 42 1-422 
ordem na qual inicializadores de membros são listados 577-579 
ordem na qual operadores são aplicados a seus operandos 219 
ordem na qual tratadores de exceção são listados 705 
ordem último a entrar, primeiro a sair 
(LIFO) 683-684, 686-688 
ordenando 482-483, 729-730, 760, 968, 970 
ordenando arrays 282-283 
ordenando strings 201 
ordenando um array com bubble sort 
283-284 
orientação a objetos 8 1-82, 396 
orientado a cliente 405-406 
orientado a objetos 83-84 
orientado para ações 83-84 
os operadores ponteiros & e * 322-324 
ostream 562, 640-642, 647-648, 650- 
651, 728-729, 73 5-736, 740-746, 
750-751 
ostreainiterator 923-925 
ostreamiterator< int >935- 
936 
ostringstrearn 907-909 
otimização 874-875 
otimização de compilador 874-8 75 
otimizações sobre constantes 452-453 
otimizando o compilador Simple 803- 
805 
outCredit 744-746 
outros conjuntos de caracteres 890 
overflowerror 716-717 
overhead 545 
overhead de chamada de função 222- 
223, 545 
overhead de chamada por valor 399-400 
overhead de cópia 398-399 
overhead de função 85 8-859 
overhead de função virtual 955 
overhead de uma chamada de função 
857-858 
overhead de uma chamada de função 
extra 534-53 5 
overhead durante a execução 629-630 
oxímoro 267-268 
P 
pacote (de aplicativos) gráfico 635-636pacote 778 
pacotes 63-64 
padrão ANSI C++ 1052-1053 
padrão ANSL[ISO C++ 65-66, 1000- 1001, 1055-1056 
padrão de facto 48 1-482 
padrão de tabuleiro de xadrez 96-97, 
181-182 
pagamento bruto 178-179 
pair 945-946, 959-960 
palavra 381, 809-810 
palavra(s)-chave 102-104. 109-110 
palavra-chave operador de desigualdade 
1016-1017 
palavra-chave template 232-233. 680-68 1 
palavras e frases descritivas 234-235 
palavras-chave operadores 1004, 1016- 1018 
palavras-chave operadores lógicos 
1016- 10 17 
palavras-chave operadores sobre bits 
1016- 1017 
palavras-chave operadores sobre bits 
com atribuição 1016-1017 
palavras-chave operator 5 16-517 
palavras-chave reservadas 109-110 
paI mndromo 790-79 1 
papéis 164 
papel 53-54 
par chave/valor 946-949 
par de chaves {} 80-81 
par de iteradores 927-928 
par de parênteses mais interno 75-76 
paralelogramo 565-566 
parâmetro 191-195, 209-210 
parâmetro de função como uma variável 
local 194-196 
parâmetro de referência constante 225- 
226 
parâmetro de tamanho de gabarito não- tipo 689-690 
parâmetro de tipo 232-235, 68 1-682, 684-685, 689-690 
parâmetro de tipo formal 232-233. 686- 688 
parâmetro de tipo formal em uma definição de gabarito de função 681- 
682 
parâmetro não-tipo 689-690 
parâmetro por referência 223-225 
parâmetros de tipo formais de uma 
definição de gabarito 680-681 
parâmetros em funções 194-196 
parênteses aninhados 75-77 
parênteses para forçar a ordem de 
avaliação 81-82 
parênteses redundantes 77-78, 147-148 
parte da classe base de um objeto de 
classe derivada 615-616, 618, 620 
parte else do if 108-109 
partes fracionárias 118-119 
partialsort 985-986 
partial_sort_copy 985-986 
partialsum 929-930, 985 
partition 928-929, 985 
Pascal 50-52, 58-59, 1050-1051 
Pascal, Blaise 5 8-59 
passagem por uma expressão da esquerda para a direita 791-792 
passando além do fim de um array 340- 
341 
Passando arrays e elementos individuais de arrays para funções 279-281 
passando arrays para funções 278-279, 
286-288 
passando objetos grandes 225-226 passando opções para um programa 
87 1-872 
passando um array inteiro 279-281 passando um elemento de array 279- 
281 
passando um nome de arquivo para um programa 87 1-872 
passando um objeto através de chamada por valor 430-431 
passando valores para funções 534-535 passar argumentos de tamanho grande como referências const 399-400 
passar o tamanho de um array 336-337 passar o tamanho de um array como um argumento 278-279 
passar uma estrutura 810-811 passar uma estrutura através de chamada por referência 810-811 
passara através de chamada por valor 
334-335 
Passeio do cavalo 313-315 
Passeio do cavalo; abordagens de força bruta 315-316 
Passeio do cavalo; teste de passeio fechado 317 
patrimônio em software 83-84, 405-406 “peças padronizadas, intercambiáveis” 
83-84 
“pensando em objetos” 81-82. 396 
Pensando em objetos 5 1-52, 66-67, 396 
pequeno círculo 101-103. 105-106. 109- 110 
percorrer a subárvore direita 786-787 
percorrer a subárvore esquerda 786-787 
percorrer para a frente e para trás 773- 
774 
percorrer um contêiner 760 percorrer uma árvore binária 78 1-782, 
787-788 
percorrer uma árvore binária em ordem de nível 787-788. 795 
percorrer uma lista 772-773 percurso de uma árvore binária na pósordem, com recursividade 220-22 l 
percurso de uma árvore binária na préordem, com recursividade 220-221 
ÍNDICE 1089 
percurso em ordem 781-782, 795 
percurso em ordem de uma árvore 
binária com recursividade 220-22 1 
percurso em pós-ordem 78 1-782, 793- 
795 
percurso em pré-ordem 78 1-782 
percurso na ordem inversa 906-907 
percurso, travessia 906-907 
perda de dados 665-666 
perda de memória 544-545, 575-577, 
714-717, 761-762, 905-906, 918-919 
perda de recurso 699-700, 711-7 12 
permutação 985 
permutador lexicográfico 985 
permutando strings 896-897 
permutar 284-285 
permutar dois strings 896-897 
personalizar software 583-584 
pesquisa 270-273, 284-285 
pesquisa binária 288-291 
Pesquisa binária em um array ordenado 
290-291 
pesquisa binária recursiva 220-221, 
288-289, 317-318 
pesquisa de opinião 284-285 
pesquisa em árvore binária 794-795 
pesquisa linear 288-291 
pesquisa linear em um array 288-289 
pesquisa linear recursiva 220-221, 288- 
289, 317-318 
pesquisando (Ou procurando) 482-483, 760, 968. 970 
pesquisando em arrays 288-289 
pesquisando em blocos de memória 
838-839 
pesquisando em ,strings 356-357, 829- 
830 
pesquisando uma lista encadeada 
recursivamente 220-221 
pesquisando uma lista recursivamente 
793-794 
pesquisar uma lista encadeada 763-764, 806 
PHOAKS = People Helping One 
Another Know Stuff 1051-1052 
Pi 96-97, 185-186 
P1 857, 857-858 
pig Lalin 390-391 
pilha 479-480, 482-483, 683-684, 686- 
688, 708-709, 760-763, 773-776 
pilha de chamada de funções 33 1-332, 
708-709 
pilha de chamadas 33 1-332 
pilhas implementadas com arrays 479- 
480 
pilhas usadas por compiladores 791-792 
pipe (1) 868-869 
planta arquitetônica 396-397 
plataforma de hardware 56 
Plauger, P.J. 56-57 
plus 990-991 
pointer 922-923 
polimorfismo 142-143, 452, 564-565, 
583-584, 589-590, 608-609, 609-6 12, 
620-622, 629-630, 803, 955 
polimorfismo e referências 629-630 polimorfismo em linguagens não- 
orientadas a objetos 629-630 
polimorfismo substituindo a lógica de switch 564-565 
polinomial 77-78 
polinômio de segundo grau 77-78 
ponta de seta 30 1-304 
ponteiro 225-226, 320, 338-339 
ponteiro chamado this 468-469 
ponteiro const 5 24-525 
ponteiro constante 340-34 1 
ponteiro constante para dados constantes 329, 332-334 
ponteiro constante para dados nãoconstantes 329, 33 1-333 
ponteiro constante para uma constante inteira 332-333 
ponteiro da vtable de um objeto 630- 
632 
ponteiro de classe base para um objeto da classe derivada 6 10-612, 62 1-622, 629 
ponteiro de posição em arquivo de saída 
740-743 
ponteiro de posição em um arquivo 735, 
744-746 
ponteiro de vtable 632-633 
ponteiro implícito 462-465 
ponteiro indefinido 533-534, 544-545 
ponteiro não-constante para dados constantes 329-332 
ponteiro não-constante para dados não constantes 329 
ponteiro nulo (O) 732-733. 760-761, 794-795, 878-879 
ponteiro para a frente 773-774 
ponteiro para classe base (ou tipo de 
referência) 568-569, 582-584, 610- 
613, 629-630, 705, 762-763, 1007- 
1008, 1014-1015 
ponteiro para classe derivada 567-568, 1007-1008, l014-1015 
ponteiro para float 320-32 1 
ponteiro para função 349-350, 629-632, 713-7 14, 990-992, 1025 
ponteiro para o fim 805-806 
ponteiro para trás 773-774 
ponteiro para um objeto 404-405 
ponteiro para um objeto de classe derivada 610-611 
ponteiro para uma estrutura 331-332 
ponteiro para uma função 349-35 2, 874 
ponteiro para void (void *) 340-341 
ponteiro para void 340-341 
ponteiro put 735-736 
ponteiro this 462-465, 468-470, 478, 519-520, 534 
ponteiro this usado explicitamente 
468-469 
ponteiros declarados const 332-333 
ponteiros e arrays 340-341 
ponteiros e referências para classes base abstratas 611-612 
ponteiros e subscritos de arrays 340-341 ponteiros para memória alocada dinamicamente 469-470, 534 
ponteiros podem ser usados com subscritos 341-342 
ponto de disparo 700-701, 704-705 
ponto de entrada 150-152 
ponto de entrada de uma estrutura de controle 150-152 
ponto de entrada único 150-152 
ponto de saída 150-152 
ponto de saída único 150-152 
ponto decimal 116. 119-120, 135-136, 64 1-642, 658-659 
ponto decimal em um número de ponto flutuante 191-193 
ponto flutuante 653-654, 657-658, 662- 663 
ponto-e-vírgula (;) 67-68, 80-81, 108- 109, 194-196, 397-398, 417, 420. 
706, 856 
ponto-e-vírgula no fim de um protótipo de função 198-199 
ponto-e-vírgula que terminam a definição de uma estrutura 808-809 
pop 686-688, 774-775, 950-955 pop_back 930-931, 940-941, 95l- 
952, 954-955 
popfront 937, 940-943, 952-953 
pop_heap 982-984 
porção controladora 159-160, 164 
porção do mundo 159-160 
portabilidade 65-66 
portável 56 
pós-decremento 126-127, 546-547 
posição corrente em um stream 735-736 
posição de memória 73-74. 110-111 
posição de memória doSimpletron 805- 
806 
posição na memória 73-74 
posição temporária 800, 802-803 
posicionamento em relação à posição atual em um tream 690-691 
pós-incrementar um iterador 927 pós-incremento 125-127. 546-547, 550- 551 
postOrderTraversal 786-787 
potência 192-193 
power 172-173 
Powersoft 1054-1055 
precedência 75-78, 8 1-82. 126-127. 131-132, 148-149, 219, 341-342 
precedência de operadores 75-76, 821- 822 
precedência do operador condicional 
106- 107 
1090 ÍNDICE 
precedência e associatividade de 
operadores 148-149 
precedência não-alterada por sobrecarga 
518-5 19 
precisão 119-120,641-642,651-653 
precisão default 119-120 
precision 652-653 
pré-decremento 126-127, 546-547 
preencher com caracteres especificados 
64 1-642 
preenchimento 654-655, 660-661, 824- 
825 
preenchimento em uma estrutura 824- 
825 
preenchimentos de buifer 667-668 Pré-incrementando e pós- 
incrementando 126 
pré-incremento 126-127, 546-547, 550- 551 
preOrderTraversal 786-787 
pré-processador 61-63, 197-198, 856 
pré-processador C++ 61, 63, 67-68 
pré-processar 61, 63 
pressionando as teclas em um teclado 
639 
prevyermutation 985-986 
prevenção de erro 608-609 
primeira passagem do compilador Simple 798-801, 803 
primeiro a entrar, primeiro a sair (FIFO) 481-482, 778, 919-920, 940-941. 
952-953 
primeiro argumento implícito 468-469 
primeiro refinamento 114-115, 12 1-122, 
346-347 
primo 254-25 5 
principal 135-136, 186, 188 
princípio do menor privilégio 209-2 10, 
282-283, 326-329, 335-336, 345-346, 
408-409, 4 13-414, 452-453, 735, 
872-874, 927 
priorityqueue 9 19-922, 926-927, 
950-951, 954-955 
private 40 1-403, 413-4 14 
privilégio 332-33 3 
privilégios de acesso 329, 332-333 
probabilidade 20 1-202 
problema da inclusão circular 494-495 
problema da média da turma 110-111, 116 
problema de Peter Minuit 137, 186, 188 
problema de precedência 646-647 
problema do else sem correspondente 
180-181 
problema dos resultados do exame 122- 
123 
problema genérico de média da turma 
113-114. 116 
problemas de ambigüidade 592, 594- 595 
procedimento 100-101 
procedimento de recuperação 697-698 
procedimento puro 406-407 
processador de textos 354-355 
processamento de acesso instantâneo 
745-746 
processamento de arquivo 639-641 processamento de arquivo de dados formatado 727 
processamento de dados “brutos” 727 
processamento de dados comercial 756 
processamento de exceções polimórfico 
711-712 
processamento de interrupção 697-698 
processamento de textos 39 1-392 
processamento de transações 947-948 
processamento em lotes 53-54 
processamentos de listas 763-764 
processando strings 320 
processando strings em streams 907- 
908 
Processando uma fila 778 
processo de análise e projeto orientados a objetos (OOAD) 84 
processo de compilação para um programa Simple 80 1-802 
processo de projeto 366-367 
processo de refinamento 114-115 
procurando strings e caracteres em um string 898-899 
produtividade 63 
produto de inteiros ímpares 183-184 
programa 52-53 
programa com pilha usando composição 
777 
programa de análise de dados 285, 287- 288 
programa de análise de pesquisa entre alunos 270-271 
programa de análise dos dados de pesquisa 285, 287-288 
programa de classificação de uso geral usando ponteiros para funções 350- 
351 
programa de computador 52-53 Programa de consulta de crédito 735- 
736 
programa de contas a receber 756 
Programa de contas bancárias 747-748 
programa de conversão de medidas 393- 
394 
programa de craps 259-260 Programa de embaralhamento e 
distribuição de cartas 348 
programa de folha de pagamento 55-56 programa de impressão de histograma 
272-273 
Programa de impressão de texto 66-67 programa de lançamento de dados 273- 
274 
Programa de lançamento de dados usando arrays em vez de switch 
273-274 
Programa de média da turma com repetição controlada por contador 
111-112 
Programa de média da turma com repetição controlada por sentinela 
116-118 
programa de processamento de arquivo 
756 
programa de processamento de crédito 
740-741 
programa de processamento de 
transações 745-746 
programa deteste 615-616, 618, 620 
programa editor 61. 63. 100-101 
programa em pseudocódigo 100-101 
programa estruturado 150-152 
programa gerador de palavras a partir 
de números de telefone 757 
programa interpretador 56 
programa para jogar 199-201 
programa para jogar pôquer 378-379 
Programa para simular o jogo de craps 
206-207 
programa pré-processador 61, 63 
programação baseada em objetos (OBP) 
452 
programação defensiva 131-132 
programação em linguagem de máquina 
380-381 
programação estruturada 50-53, 56-60, 
65-66, 81-82. 100-103, 146-147, 396, 
479-480, 87-879 
programação genérica 917-919. 921- 
922, 1000-1001, 1055-1056 
programação orientada a objetos (OOP) 
51-53, 56-57. 65-66. 82-83. 155-156, 
192-193, 363-364,401-402.452, 
564-565, 565-567, 583-584. 589-590, 
608-609 
programação polimórfica 630-632 
programação sem goto 101-103 
programador 52-53 
programador de computador 52-53 
programas com múltiplos arquivos- 
fonte 872-874 
programas grandes 190 
programas tradutores 55-56 
Programmer’s Source 1054-1055 
projeto 84 
projeto de programa 104-105 
projeto Green 57-58 
Projeto Mac 63-64 
Projeto Mac do MIT 63-64 
projeto orientado a objetos (OOD) 81- 
82, 155-156, 159-160, 186, 188, 298- 
299, 363-3 64, 396, 432-434, 465-466 
projetos 874 
proliferação de classes 584-585 
promoção 118-119 
prompt 7 1-72, 116-118, 868-869 
prompt de linha de comando 868-869 
1092 ÍNDICE 
remove copyif 928-929, 960-961, 963 
removeif 928-929, 960-961 
removendo o atributo “const” 1008- 1009 
“removidos pela máscara” 816-817 
rend907-908, 921-922, 933-934 
rendimentos 178-179 
repetibilidade da função rand 203-204 
repetição 102-104, 154-156 
repetição controlada por contador 110- 
112, 126-128, 219-220 
repetição controlada por sentinela 113- 
116 
repetição definida 110-111 
repetição indefinida 114-115 
repetindo código 192-193 
replace 901-902, 928-929, 963 
replace_copy 928-929, 963-965 
replace_copy_if 928-929, 963- 
965 
replaceif 928-929, 963 
representação de dados 480-481 
representação de membros de dados 
428-429 
representação de um baralho em um 
array bidimensional 345-346 
representação gráfica de um algoritmo 
101- 103 
representação gráfica de uma árvore 
binária 780-781 
representação interna de um string 
542-543 
representação numérica de caracteres 
139- 140 
requisitos 64-65, 84, 159-160 
requisitos do sistema 159-160 
reset 986-987 
resize 898-899 
resolução de sobrecarga 683-684 
restaurar o estado de um stream para 
bom 665-666 
resto após divisão inteira 74-75 
restrição 164 
Restrições 164 
retângulo 302-304 
retângulo com cantos arredondados 236 
reticências 870-871 
reticências (. .) em um protótipo de 
função 868-869 
retirada de lista encadeada com 
recursividade 220-221 
retirar da fila 48 1-482 
retirar um nodo de uma lista 772-773 
Retornando uma referência a um 
membro de dados private 429- 
430 
retornar para a fase de edição 63 
retornar um resultado 196-197 
retornar um resultado inteiro 194-195 
retornar um valor 67-68 
retornar um valor de um construtor 417, 
420 
retorno do carro ( \r ) 68-69, 825, 
827-828 
retumando valores a partir de funções 
534-535 
reutilização 155-156, 192-193, 336-337, 564, 683-684 
reutilização de software 56-57, 60-61, 
68-69, 155-156, 192-193, 405-406, 564,583-585,592,621-622,680- 
681, 683-685 
reutilizado 83-84 
reutilizando componentes 60-61 
reutilizar 405-406, 583-584 
“reutilizar, reutilizar, reutilizar.” 83-84, 
405-406, 760, 917-918 
reverse 928-929, 937, 97 1-975 
reversecopy 928-929, 974-976 
reverseiterator 92 1-923, 927, 
933-934 
rfind 900-901 
Richards, Martin 56 
Ritchie, D. 56 
Rogue Wave 60-61 
rotação de um disco ou de uma fita 639 
rotate 928-929, 985-986 
rotatecopy 928-929, 985-986 
rótulo 211-212 
rótulo case 137, 140-141, 21 1-212 
rótulo de ação 237-23 8 
rótulo especificado em um comando 
goto 878-879 
rótulos em uma estrutura switch 211- 
212 
RTTI 564, 568-569, 1004, 1013-1014 
Rumbaugh, James 84 
runtimeerror716-717 
rvalue (“valor à direita”) 150-152, 226- 227, 53 1-532, 534-535, 927 
s 
saída antecipada de um laço 144-145 
saída com buifer 640-641 
saída com stream 640-641 
saída de arquivo 640-641 
saída de caracteres 64 1-642 
saída de inteiros 641-642 
saída de letras maiúsculas 641-642 
saída de ponteiros 64 1-642 
saída de tipos de dados padrão 641-642 
saída de valores em ponto flutuante 
64 1-642 
saída de variáveis char * 644-645 
saída na tela 66-67, 803 
saída não-formatada 641-642 
saída padrão 868 
saída para um string na memória 199- 
201 
saída sem buifer 640-641 
saídas acumuladas 72-73 
sair 237-238 
sair de um laço 186, 188 
sair de um programa 709-7 10 
sair de uma estrutura profundamente aninhada 87 8-879 
sair de uma função 68-69 
“sair fora” em qualquer extremidade de um array 524-525 
salta o resto de uma estrutura switch 
144- 145 
salta o resto do código no laço 145-146 
Scott, Kendall 84-85 
search 929-930 
searchn 929-930 
seção “administrativa” do computador 
53-54 
seção de “almoxarifado” do computador 
53-54 
seção de “expedição” do computador 
53-54 
seção de “recebimento” do computador 
52-53 
seção de inicialização do for 134-135 
Seção especial 
Construindo seu próprio 
computador 380-381 
Seção especial - Construindo seu 
próprio compilador 796 
“seção industrial” do computador 53-54 
second 945-946 
seek get 735 
seek put 735 
seekp 735, 742-746 
segunda passagem do compilador 
Simple 803 
segundo refinamento 114-115, 121-122, 
346-347 
segurança 430-431 
seleção 102-104, 152-155 
seleção dupla 154-155 
seleção simples 154-155 
selecionar um substring 545-546 
semente 204-205 
“sneakernet” 54-55 
seno 192-193 
seno trigonométrico 192-193 
sensível a maiúsculas e minúsculas 70- 
71, 109-110 
separação em funções 52-53 
Separando a interface e a 
implementação da classe Time 409- 
410 
separando um programa em funções 
192-193, 22 1-222 
separando unidades léxicas em strings 
356-357 
separar a interface da implementação 
408-409 
separar as palavras de uma sentença 
793-794 
ÍNDICE 1093 
sequência 102-104, 151-152, 154-155, 971-974, 985-986 
seqüência da saída 923-924 
seqüência de entrada 923-924 
seqüência de escape 68-70, 179-180, 
642-643 
seqüência de escape com barra invertida 
(\)68-69 
seqüência de escape de alarme (‘a’ 
68-69, 827-828 
seqüência de escape de tabulação 179- 
180 
seqüência de inteiros 183-184 
seqüência de mensagens 366 
seqüência de números aleatórios 203- 
204 
seqüências de bits 727-729 
seqüências de caracteres 739-740 
série de Fibonaeci 217-218 
servidor de arquivos 54-55 
set 9 19-920, 926-927, 942-943, 946, 
985-986 
<set> 200-201, 92 1-922, 943-944, 
946 
setdifference 976-978 setintersection 976, 978-979, 981 
setnewhandj.er 699-700, 713- 714 
setsyrnmetricdifference 
976, 978-979, 981 
setterminate 704-705, 7Ut-7U9 
setunexpected 709-710, 716-717 
setunion 976, 978-979, 981 
set< double, less< double>> 
946-947 
seta 96-97, 105-106, 109-110 
setiosflags 119-120, 137, 348 
setiosflags (ios: left) 137 
setjump 699-700 
setprecision 119-120,652-653 
setprecisiori(2) 135-136 
setw 137,263-264, 348, 356-357, 522- 
523, 654-655, 658-659 
Shakespeare, William 390-391 
short 142-143, 198-199 
short int 142-143 
showpoint 657-658, 664-665 
SIGABRT 875-876 
SIGFPE 875-876 
SIGILL 875-876 
SIGINT 875-876 
signal para capturar eventos 
1? inesperados 875-876 
SIGSEGV 875-876 
SIGTERM 875-876 
Silicon Graphics Standard Templare 
Library Programmer’s Guide 1000- 
1001, 1055-1056 
símbolo de ação 101-103 
símbolo de acrescentar na saída (») 
868-869 
símbolo de composição 162-163 
símbolo de decisão 102-105 
símbolo de redirecionamento da saída> 
868-869 
símbolo de redirecionamento de entrada 
<868 
símbolo elipse 10 1-103 
símbolo pequeno círculo lO 1-105 
símbolo pequeno losango 238 
símbolo retângulo 101-106, 109-110, 132-133, 302-304, 565-566 
Simpletron Machine Language (SML) 388-389, 760-761, 796, 797-798, 
803-805 
Simula 59-60 
Simulação 
A tartaruga e a lebre 379-3 80 
simulação 299-300, 365, 382-383, 485- 486 
simulação de embaralhamento e 
distribuição de cartas 345-346, 348, 
808,811-812 
simulação de embaralhamento e distribuição de cartas de alto desempenho 811-812 
simulação de supermercado 793-794 
simulador 159-160, 234-235 
simulador de computador 382-383 
simulador de elevador 396 
simulador de vóo 635-636 
simulador do Simpletron 388-389, 760- 761. 797-798, 803, 805-806 
simulador em software 155-156 
sin 192-193 
sinais padrão 875-876 
sinal 875-876 
sinal de atenção interativo 875-876 
sinal de percentual (%) (operador módulo) 74-75 
sinal interativo 876-877 
sinal justificado à esquerda 657-658 
sinal mais (+) indicando visibilidade pública 43 2-434 
sinal mais 660-661 
sinal menos (-) indicando visibilidade privada 432-434 
sinking sort 28 3-284 
sinônimo 322-325 
sintaxe de inicial ização de membros 
485 
sintaxe de inicializador de membro 456- 
457 
sistema acionado por menu 353-354 
sistema de contas a receber 729-730 
sistema de folha de pagamento 635-636 
sistema de gerência de banco de dados 
(DBMS) 727-729 
sistema de numeração binário 814-815, 
833-834 
sistema de numeração com base 10 
192-193, 657-658 
sistema de numeração com base 16657- 658 
sistema de numeração com base 8 657- 
658 
sistema de numeração decimal (base 
10) 657-658, 832-834 
sistema de numeração hexadecimal 825 sistema de numeração octal (base 8) 
65 1-652, 657-658, 832-833 sistema de ponto de venda 739-740 sistema de reserva de companhias 
aéreas 312, 739-740 
sistema de software em camadas 611- 
612 
sistema de um banco 739-740 sistema operacional 53-56, 356-357, 
732-733 
sistema operacional orientado a objetos 
611-612 
sistemas baseados no Microsoft’s Windows 54-55 
sistemas compatíveis com o IBM PC 
654-655 
sistemas de processamento de transações 739-740 
sistemas operacionais de memória virtual 58-59 
Site Cygnus na Web 1054-1055 
site da Web 50-51 
site da World Wide Web 65-66 
site na Web da Quadralay Corpo ration 
105 1-1052 
sites na Web relacionados com a STL 
1000, 1055-1056 
size 920-92 1, 932-933, 953-954, 973- 974, 986-987, 989-990 
sizet 336-337, 740-741 
sizetype 922-923 
sizeof 336-338, 406-407, 468-469, 742-746, 76 1-762, 834-835, 859-860 
sizeof nomeDeArray 336-337 
Smalltalk 56-57, 565-566 
SML 381, 797-798 
sobrecarga de destruidores 420-421 
sobrecarga de função 229-230, 401- 402, 573, 639, 868-869 
sobrecarga de operador unário 523-5 24 sobrecarga de operadores 72-73, 230- 231, 400-401, 516, 639, 814-815 
sobrecarregado 643-644 
sobrecarregando « e » 230-231 
sobrecarregando 72-73, 229-230, 401- 402, 516, 680 
sobrecarregando funções gabarito 683- 
684 
sobrecarregando o + 51 8-5 l9 
sobrecarregando o + 518-5 19 
sobrecarregando o operador binário += 
523-524 
1094 INDICE 
sobrecarregando o operador de chamada de função O 545-546, 556-557 
sobrecarregando o operador de inserção em stream 750-75 1 
sobrecarregando o operador de pós- incremento 551-552, 546-547 
sobrecarregando operadores 230-231 sobrecarregando operadores binários 
523-524 
sobrecarregando operadores de inserção em stream e extração de stream 520- 
521 
sobrecarregando operadores de prédecremento e pós-incremento 547- 
548 
sobrecarregando um operador de atribuição 518-519 
sobrecarregar o operador « 400-40! 
sobrecarregar o operador de adição (+) 
5 16-5 17 
sobrecarregar o operador de igualdade 
400-40! 
sobrecarregar o operador unário 523- 
524 
sobrecarregar uma função membro 406- 
407 
sobrecarregar uma função membro const com um versão não-const 
452-453 
sobrecarregou um operador como uma função não-membro, não-friend 
519-520 
sobrescrevendo 575-577 
Sobrescrevendo membros de classe base em uma classe derivada 573-574 
sobrescrevendo uma função 573, 575- 577 
sobrescrever 608-609, 615, 619-620 sobrescrever uma função virtual 
pura 622, 624-625 
software 50-53 
software comercial 5 8-59 
software confiável 878-879 
software de alta qualidade depurado 564 
software de layout de página 354-355 
software embalado em plástico 583-584 
software paraa STL 1000-1001. 1056 
solicitação de término enviada para o programa 875-876 
solução iterativa 2 19-220 
solução recursiva 2 19-220 
soma dos elementos em um array 269- 
270 
soma recursiva de dois inteiros 220-221 somar os elementos de um array 
recursivamente 220-221 
somatório com for 134-135 
sort 937, 939-940, 968, 970, 985-986 
splice 937, 939-940 
.spool de impressão 778 
spool para disco 778 
sqrt 191-193 
srand 203-206 
srand ( time ( O ) ) 205-206 
stable_partition 928-929, 985 
stablesort 985-986 
stack 684-685. 9 17-920, 926-927, 
950-953 
Stack< double > 686-688, 777 
stack<jnt> 686-688 
Stack<T> 686-688 
Standard Template Librarv Online Reference Home Page 1000-1001, 
1055-1056 
Standard Template Librarv Programmer’s Guide 1000-1001, 1055- 1056 
Standard Template Library with BorlandC++ 1001-1002, 1056 
static 208-211,227-228,873-874, 
881-883 
staticcast (coerção com 
verificação de tipo durante a 
compilação) 127-128, 148-149, 264- 
265 
staticcast 118-119, 139-140, 
1005-1008 
staticcast< DerivedCJ.asse 
*> 1007-1008 
std narnespace 1010-1012 
std: :bad_exception 716-717 std: :cin70-72 
std: :cout66-68 std: :endl72-73 
Stepanov, Alexander 917-918, 10001001, 1055-1056 
STL 629-630, 917-918 
strcat 357-359, 544-545, 873-874 
strcmp 357-360, 873-874 
strcmp para comparar strings de caracteres 545 
strcpy 357-358, 543-545 
strcspn 834-836 
stream de bytes 639 
stream de caracteres 67-68 
stream de entrada 645-646, 648-649 
stream de entrada padrão (cm) 639- 640 
stream de entrada padrão 85 8-859 stream de erro padrão sem buffer 639- 
640 
tream de saída 935-936 stream padrão de erro com buffer 639- 
640 
stream padrão de erros (cerr) 63 
strerror 842-843 
<sstream> 199-201, 907-908 
<stack> 200-201, 921-922, 951-952 
<stdexcept> 199-201, 716-717 
<stdio . h> 200-201 
<stdlib . h> 200-201 
<string . h> 200-201 
<string> 199-201, 890 
string 343-344, 354-355, 544-545. 808 
string462-465, 890-891, 919-920 
string concatenado 544-545 
string constante 354-355 
string de caracteres 67-68, 263-264, 
273-274 
string de caracteres interno 543-544 
string de saída 641-642 
string é um ponteiro constante 355-356 
string literal 7 1-72, 274-275, 354-356 
string nulo 740-741 
string sendo separado em “unidades 
léxicas” 36 1-362 
string terminado por nulo 274-275, 345- 
346, 644-645 
string vazio 897, 899 
string: constiterator 906- 
907 
string: :npos 900-901 
strings baseados em ponteiro 354-355 
strings char * no estilo de C 904-905 
strings como objetos completos 263- 
264, 354-355 
strings como objetos de classe 
completos 452 
strings no estilo de C 904-905 
strlen 358, 362-363 
strncat 3 57-359 
strncmp 357-360 
strncpy 357-358 
Stroustrup, B. 56-57. 59-60, 680, 691, 
1052- 1053 
strpbrk 834-837 
strrchr 834-837 
strspn 834-838 
strstr 834-838 
strtod 829-830, 832-833 
strtok 357-358, 361-362 
strtol 830-834 
strtoul 830-831, 833-834 
struct 396-397, 727-729, 740-741, 760. 808. 880-88! 
subárvore direita 785-7 87, 794-795 
subárvore esquerda 780-781, 785-787, 
794-795 
subclasse 565-566 
subconj unto de objeto 565-566 
subobjeto 1027-1028 
subproblema 214 
subscrito 262-263 
subscrito através de um vector 936 
subscrito de array fora dos limites 697- 
698 
subscrito de linha 293-294 
subscrito fora do intervalo válido 936 
subscritos de arrays 332-333. 342-343, 
703-704 
subscritos de colunas 292-293 substantivos 59-60, 160, 161, 186, 188, 
234-235 
1096 ÍNDICE 
tipo do ponteiro this 468-469 
tipo parametrizado 694-695 
tipo size t 336-337 
tipos de argumentos corretos 194-195 
tipos de dados primitivos 480-48 1 
tipos de exceções da STL 936 
tipos de retorno corretos 194-195 
tipos definidos pelo usuário 83-84 
<time . h> 200-20 1 
tolerância a falhas 697-699 
tolower 825-827 
top 951-953, 955 
topo 114-115 
topo de uma pilha 760, 774-775 
Torres de Hanói 256-25 8 
Torres de Hanói com recursividade 220- 
221 
total 110-111, 114-115, 121-122,209- 
210 
total acumulado 114-115 
toupper 825-827 
trabalhador 190-191 
trabalhador tarefeiro 185-186 
trabalhadores comissionados 185-186 
trabalho 53-54 
tradução 55-56 
traduzir 61,63 
transação 756 
transferência de controle 101-103 
transform928-929, 965-966, 968, 970 
transição 23o-237 
transição de estado 236-23 7 
Transmission Control Protocol 63-64 
transmitir com segurança 182-183 
transporte (vai um) 55 1-552 
trapezóide 565-566 
tratador 702-703 
tratador de exceção 697-698, 700-701, 
704-705 
tratador de exceção com void * 705 
tratador de falha de new 713 
tratador de interrupção 356-357 
tratador de new 713-714 
tratador de sinais 876-877 
tratador void * 705 
tratadores de exceção procurados em 
ordem 704-705 
tratamento de erro 697 
tratamento de exceções 199-201, 697 
tratamento de sinais 876-877 
Tratando arrays de caracteres como 
.strings 275-276 
travessia recursiva de um labirinto 220- 
221 
Tree<int> 784-785 
triângulo reto 182-183, 185-186 
Triplas de Pitágoras 185-186 
true 77-78, 102-110, 128-129, 215- 
216. 534 
trunca a parte fracionária de um 
double 198-199 
truncar 74-75, 118-119.462-465,730- 
731 
tutoriais para a STL 1000, 1055-1056 
tutorial de C++ 1050-1051 
typedef 810-811,890,907-908,921- 
922, 944-945, 948-949 
typedefs em contêineres de primeira 
classe 922-923 
typeid568-569,716-717, 1013-1015 
<typeinfo> 199-201, 1014-1015 
typename 232-233, 680-681 
u 
UAL 53-54 
Um ambiente típico de C++ 6 1-62 
Um exemplo de chamada por referência 
225-226 
Um exemplo de escopos 212-213 
Um exemplo simples de tratamento de exceção com divisão por zero 700- 
701 
Um objeto const deve ser inicializado 
268-269 
um para dois 162-163 
um para um 162-163 
Um programa de adição 70-71 
Um programa de análise de pesquisa entre alunos 270-27 1 
Um programa que imprime histogramas 
272-273 
Um programa simples com pilha de dados 775-776 
Um programa simples de pilha de dados usando composição 777 
Uma classe Array com sobrecarga de operadores 525-526 
Uma classe de números complexos 556- 
557 
Uma classe huge integer 559-560 
Uma classe String com sobrecarga de operador 536-537 
UML 8 1-82, 84 
UML Distilled 
Second Edition 84-85 
UML Partners 84-85 
underflowerror 716-717 
unexpected 708-709. 716-717 
unidade central de processamento 
(CPU) 5 3-54 
unidade de aritmética e lógica (UAL) 
53-54 
unidade de compilação 1012-1013 
unidade de disco 639 
unidade de memória 53-54, 824-825 
unidade de memória endereçável 824- 
825 
unidade de memória secundária 53-54 unidade de processamento 52-53 
unidade Ixica (token) 357-358, 361- 362, 800-803 
unidade lógica 52-5 3 
unidades “isoladas’ 54-55 
Unzfied Modeling Language (UML) 81- 82, 84 
union 879-881 
union anônima 88 1-882 
union sem construtor 880-881 
urlique 928-929, 937, 97 1-975 
uniquecopy 928-929, 974-976 
United States Department of Defense 
(DOD) 58-59 
University of Illinois at UrbanaChampaign 63-64 
UNIX 54-56, 59-61, 63, 139-140, 654- 655, 698-699. 732-733, 87 1-872, 
874-876 
unsetf(ios: :skipws) 657-658 
unsigned 199-200, 204-205, 875-876 
unsigned char 199-200 
unsigned int 204-205. 336-337 
unsigned long 199-200. 216-217, 833-834, 875-876 
unsigned long int 199-200, 216- 217 
unsigned short 199-200 
unsigned short int 199-200 
upcasting 1026-1027 
upperbound 942-943, 945-946, 
978-981 
usa um 585 
Usando a estrutura do/while 143-144 
Usando a função membro f iii e o manipulador setfill 660-661 
Usando a função swap para permutar dois strings 896-897 
Usando argumentos de linha de comando 87 1-872 
Usando argumentos default 228-229 
usando arrays em vez de switch 273- 
274 
Usando as funções exit e atexit 
874 
Usando atof 830-83 1 
Usando atoi 830-831 
Usando atol 83 1-832 
Usando campos de bits para armazenar um baralho 822-823 
Usando classes base virtual 1028- 1029 
Usando funções da biblioteca padrão para executar um heapsort 981-982, 984 
Usando funções gabarito 682-683 
Usando funções membro get. put e eof 647-649 
Usando funções set e get 425-426 
Usando goto 879-880 
Usando inicializadores de objetos membro 461-462 
unidade de saída 5 3-54 
ÍNDICE 1097 
Usandoisdigit, isalpha. 
isainuin e isxdigit 826 Usando islower, isupper, 
tolower e toupper 826-827 Usando isspace, iscntrl, 
ispunct, isprint e isgraph 
828-829 
Usando listas de argumentos de tamanho variável 869-870 
Usando memchr 84 1-842 
Usando memcmp 841-842 
Usando memcpy 839-840 
Usando mernmove 840-841 
Usando memset 842-843 
Usando o comando break em uma estrutura for 145-146 
Usando o comando continue em uma estrutura for 145-146 
Usando o indicador ios: showbase 
66 1-662 
Usando o indicador 
ios: : uppercase 663-664 
Usando o manipulador de siream endi 
642-643 
Usando o operador de resolução de escopo unário 229-230 
Usando o operador sizeof para determinar tamanhos de tipos de dados padrão 338 
Usando o ponteiro this 468-469 Usando operadores de igualdade e relacionais 79-80 
Usando os manipuladores de stream hex, oct, dec e setbase 652- 653 
Usando os operadores AND sobre bits, OR inclusivo sobre hits, OR 
exclusivo sobre bits e complemento 
sobre bits 817-818 
Usando os operadores de deslocamento 
sobre bits 819-820 
usando pipe 868-869 
Usando quatro métodos para referenciar 
elementos de arrays 342-343 
Usando strcat e strncat 358-359 
Usando strchr 834-835 
Usando strcmp e strncmp 359-360 
Usando strcpy e strncpy 358 
Usando strcspn 835-836 
Usando strerror 843-844 
Usando strlen 362-363 
Usando strpbrk 836-837 
Usando strrchr 836-837 
Usando strspn 837-838 
Usando strstr 838-839 
Usando strtod 832-833 
Usando strtok 36 1-362 
Usando strtol 833-834 
Usando strtoul 834-835 
usando subscritos 940-941 
usando subscritos com um ponteiro e 
um deslocamento 342-343 
usando subscritos duplos para arrays bidimensionais 556-557 
Usando tratamento de sinais 876-877 Usando um construtor com argumentos default 418 
Usando um função mime para calcular o volume de um cubo 223- 
224 
Usando um gabarito de função 23 3-234 Usando um inicializador de membro 
para inicializar uma constante de um tipo de dado primitivo 457-458 
Usando um iterador para enviar um string para a saída 906-907 
Usando um membro de dados static para manter uma contagem do número de objetos de uma classe 
475-476 
Usando um objeto ostringstream alocado dinamicamente 908-909 
Usando uma classe Time com objetos const e funções membro const 
453-454, 456-457 
Usando uma função utilitária 4 14-415 Usando uma referência inicializada 
226-227 
Usando uma union anônima 882-883 usar explicitamente o rótulo private 
412 
USENIX C++ Conference 680 using 79-80, 87-88 
usingnamespace 1010-1012 
uso de buffer 667-668 
uso explícito de sizeof 471, 473-474 
uso explícito do ponteiro this 468- 
469 
usos indevidos de sobrecarga 517-5 18 
utilitário make 874 
<utiiity> 200-201 
v 
vaarg 868-87 1 
vaend 868-87 1 
vaiist 868-87 1 
va_start 868-87 1 
vaiarray 919-920 
validação 907-908 
validação de dados 413-414 
validar uma chamada de função 197- 
198 
valor 7 1-72 
valor”lixo” 112-113 
valor absoluto 192-193 
valor booi faise 147-148 
valor bool true 147-148 
valor da direita 150-152 
valor da esquerda 150-152, 322-324 
valor de deslocamento 205-206 
valor de indicador 114-115 
valor de ponto fixo 137 
valor de ponto flutuante em notação científica 663-664 
valor de sentinela 114-115, 117-118, 139- 140 
valor de uma variável 73-74, 208-209 valor default para um argumento 228 
229 
valor diferente de zero tratado como true 149-150 
valor do sinal 114-115 
valor fantasma 114-115 
valor final de uma variável de controle 
126-127, 132-133 
valor indefinido 112-113,573 
valor inicial de um atributo 236 
valor inicial de uma variável de controle 
126-127, 129-130 
valor maximuxn 197-198 
valor médio 286-28 8 
valor posicional 181-182 
valor temporário 118-119, 198-199 
valores de face de cartas 345-346 
valores de nodos duplicados 780-781 
valores de ponteiros como inteiros 
hexadecimais 322-324 
valores dos naipes de cartas 345-346 
valores em ponto flutuante 119-120 
valores mapeados 942-943 
vaiuetype 92 1-923, 948-949 
variáveis de classe static 474-475, 
530-531 
variável 70-71, 83-84, 100-101, 191193, 396-397 
variável automática 209-210, 227-228, 
774-775 
variável com escopo de classe está oculta 406-407 
variável com escopo de função 406-407 
variável constante 267-270 
variável contadora 112-113 
variável de coerção visível no depurador 
857 
variável de controle 129-130 
variável global 210-214, 228-229, 278- 279, 872-873, 1012-1013 
variável local 191-193, 209-211, 213- 214, 33 1-332, 882-883 
variável local automática 211-212 
variável local static 211-212,214, 275-276, 957-958 
variável não-inicializada 112-113 
variável ponteiro 714-715 
variável ponteiro static 210-211 
varrendo imagens 53-54 
VAX VMS 139-140, 732-733 
vector 9 19-920, 926-927, 929-935, 
950-955 
<vector> 200-201, 921-922, 930-93 1 vendedor de software independente 
(ISV) 56-57, 408-409, 583-584. 621- 622 
109S INDICE 
verbos 186, 188, 298-299, 366-367, 
396-397 
verbos em uma especificação de sistema 
83-84 
verificação de argumentos desativada 
222-223 
verificação de erro 190-19 1, 697 
verificação de intervalo 4 13-414, 524- 
525, 892-893, 929-930 
verificação de intervalo de subscrito 
480-481 
verificação de limites 272-273 
verificação de limites de array 272-273 
verificação de sintaxe 804-805 
verificação de tipo 680-681, 857-859 
verificação de validade 424-425, 428- 
429 
verificador de ortografia 852-85 3 verificar recursivamente se um string é 
um palíndromo 220-221, 317-318 versão const de operator [] 534- 
535 
vi 61, 63 
vida de um objeto 533-534 
vídeo 639 
vídeo digital 639 
vídeo 1/O 639-640 
vinculação dinâmica 608-609, 615-616, 
vinculação estática 594-595, 608-609. 
6 15-616, 618, 620-621, 629 
vinculação tardia 62 1-622 
violação de acesso 356-357, 9 18-919 
violação de acesso à memória 918-919 
violação de segmentação 875-876 
violar o encapsulamento 564-565 
virtual pura 61 1-613 
virtual pura em classe base 622, 
624-625 
visibilidade private 43 2-434 
visibilidade public 43 2-435 
visualizando a recursão recursivamente 
220-221 
VMS 87 1-872 
void * 340-341, 647-649, 705, 839- 
840 
void 221-222 
volatile 874 875, 1007-1008 
voltas para o primeiro 55 1-552 
volume de um cubo 223-224 
voz digital 639 
vtable 629-630, 63 2-633 
w 
walkthrough do código 485 
wchart 890 
what 702-703, 712 
width 654-655 
WindowsNT 698-699 
Wirth, Nicklaus 58-59 
World Wide Web 52-5 3, 64-65 
write 650-651. 740-743 
www. ansi org 65-66 
www.cygnus.com/misc/ wp/ 65- 66 
www. deitei, com 50-53 www.omg.org 84-85 
x 
Xerox’s Pato Alto Research Center (PARC) 56-57 
xor 1016-1017 
xor 164 
xor_eq 1016-1017 
z 
ZDNet University 1050-1051 
zerar bits 665-666 
O inicial 66 1-662 
Ox inicial e OX inicial 66 1-662 
zeros após a vírgula 119-120, 191-193, 
657-658 
zeros e uns 727 
618, 620-622, 629-630, 632-633 
Fim da obra.

Mais conteúdos dessa disciplina