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.