Programar em C++
141 pág.

Programar em C++


DisciplinaLinguagem de Programação Estruturada128 materiais1.055 seguidores
Pré-visualização34 páginas
PDF gerado usando o pacote de ferramentas em código aberto mwlib. Veja http://code.pediapress.com/ para mais informações.
PDF generated at: Fri, 06 Dec 2013 10:37:21 UTC
Programar em C++
Conteúdo
Páginas
Objetivo 1
Por que C++? 1
Diferenças entre C e C++ 2
Introdução 3
Alô, Mundo! 6
Variáveis e constantes 12
Ponteiros 18
Vetores 20
Estruturas 29
Operadores 34
Decisão e controle de fluxo 37
Laços 39
Funções 42
Referências de dados 44
Entrada e saída de dados 49
Entrada e saída de dados 2 58
Manipulando strings 73
Classes 81
Encapsulamento 96
Herança 99
Polimorfismo 112
Friend 117
Classes internas 119
Sobrecarga de operadores 120
Alocação dinâmica de memória 122
Exceções 129
Namespace 129
Templates 129
Compilação 131
Lista de Palavras Reservadas do C++ 133
Lista de Sequências de Escape 133
Tabela ASCII 134
C++11 135
Referências
Fontes e Editores da Página 136
Fontes, Licenças e Editores da Imagem 137
Licenças das páginas
Licença 138
Objetivo 1
Objetivo
O livro Programar em C++ tem por objetivo apresentar os fundamentos desta linguagem, de modo que o estudante
possa desenvolver diferentes tipos de softwares em alto e baixo nível para os diversos ambientes existentes, desde
aplicações para GNU/Linux ou Windows até programas para microcontroladores, além de fornecer a base para os
estudos avançados de C++.
Por ser um livro específico sobre a linguagem C++, é altamente recomendável que o leitor tenha conhecimentos
prévios sobre a linguagem C.
Espera-se que este livro aborde:
\u2022\u2022 Aspectos teóricos
\u2022\u2022 Aspectos práticos
\u2022\u2022 Os erros comuns
Para tanto cada tópico deverá ter uma explicação teórica, citar os erros mais comuns e exercícios.
Por que C++?
Imagine que você deve fazer um programa para fazer a máquina de um pequeno relógio de pulso funcionar, então
você pensa:
\u2022\u2022 Bom, isso pode ser feito com Assembly...
\u2022\u2022 Porém, pensando melhor, você decide mudar de linguagem quando você pondera.
\u2022\u2022 O problema maior é que se eu tiver que mudar o processador do relógio, vou ter que refazer o programa. É melhor
usar linguagem "C".
\u2022\u2022 Depois você termina por avaliar outra possibilidade:
\u2022\u2022 Bem, se eu já estou pensando em "C" é melhor usar "C++", depois vai ser mais fácil de entender o código,
reaproveitar em outras coisas e ainda vai ser mais fácil de expandir para outros modelos de relógio.
E assim é o que podemos perceber como C++ é poderosa, flexível e abrangente. Ela pode ser usada para programar
qualquer tipo de hardware, desde os mais simples até os mais complexos. Além disso, C++ é uma linguagem que
gera programas em código de máquina, que funcionam com ou sem a participação de sistemas operacionais no
dispositivo.
Alguns profissionais afirmam que C++ é a linguagem mais poderosa que existe, veja algumas características dela:
\u2022 É um superconjunto da linguagem C, e contém vários melhoramentos;
\u2022 Deu origem a grandes linguagens como Java e D;
\u2022 É a porta para a programação orientada a objetos;
\u2022 C++ pode virtualmente ser efetivamente aplicado a qualquer tarefa de programação;
\u2022\u2022 Há vários compiladores para diversas plataformas tornando a linguagem uma opção para programas
multiplataforma.
A linguagem C++ é utilizada em projetos como:
\u2022 Compiladores;
\u2022 Editores;
\u2022 Ferramentas de programação;
\u2022 Jogos;
\u2022 Programas de redes.
Até ao momento foram realizadas 3 grandes revisões à linguagem:
Por que C++? 2
\u2022\u2022 1ª em 1985;
\u2022\u2022 2ª em 1990;
\u2022 3ª em 1998 a que deu origem ao ANSI \ ISO standard a que ficou comummente denominada de Standard C++.
Esta versão é suportada por todos os compiladores C++ famosos incluindo Microsoft\u2019s Visual C++, Borland\u2019s
C++ Builder e GCC. Esta foi revista em 2003.
C++ é considerada uma linguagem que está entre linguagem de alto nível (em inglês, high level language) e
linguagem de baixo nível (em inglês, low level language). Dito de outra forma, é uma linguagem que está próxima
da linguagem humana (linguagem de alto nível), mas ao mesmo tempo permite estar próximo da maneira como o
computador processa, próximo do Assembly (uma linguagem de baixo nível).
Diferenças entre C e C++
Quem sabe programar em C++, é capaz de programar C, devido à semelhança entre as linguagens e o fato do C++
ser uma extensão do C. Contudo o C não é completamente um subconjunto do C++. Grande parte de código C pode
ser perfeitamente compilado em C++, mas existem algumas pequenas diferenças sintáticas e semânticas entre as
linguagens que tornam alguns trechos de código C válidos em código C++ inválido, ou códigos que exibem
comportamentos diferentes em cada linguagem.
Algumas diferenças básicas:
\u2022 O C permite a conversão implícita entre o tipo de dado void* para ponteiros para outros tipos, algo que o C++ não
permite.
\u2022 O C permite que constantes de caracteres sejam inseridas em chamadas de funções com parâmetros tipo char*,
em C++ é preciso declarar o parâmetro como const char *;
Além destas pequenas diferenças, C++ tem um conjunto de características que a torna fundamentalmente diferente
de "C". Esse conjunto, torna possível programar em C++ de um modo totalmente diferente do modo de programar da
linguagem "C". O que traz a diferença é o modo da orientação na montagem do código.
Chamamos o modo de programar em "C" de orientado a procedimentos e chamamos o modo do "C++" de orientado
a objetos. Muitas pessoas confundem as coisas quando começam a programar usando um compilador C++, pois esta
linguagem permite programar nos dois modos. Essa é uma das características que a torna mais flexível.
Apesar de C++ permitir programar em modo orientado a procedimentos, podemos dizer que nestes casos estamos
programando em "C", usando um compilador C++. Quando usamos C++ programamos em modo orientado a
objetos. Devido a estas características, o C++ permite programar em modo misto, ou seja, escrevendo partes do
código orientadas a procedimentos e outras orientadas a objetos.
As diferenças entre os dois modos de programar serão esclarecidas nos capítulos subsequentes. Por hora nos basta
deixar claro que os dois modos são diferentes. Usar estes dois modos de programar ao mesmo tempo é uma das
facilidades que o C++ permite, enquanto que outras linguagens orientadas a objetos como Java, Eifel, etc, não
permitem.
Esta página é somente um esboço.
Ampliando-a você ajudará a melhorar o Wikilivros.
Introdução 3
Introdução
Pensando no código
Considerando o conjunto de operações e eventos que nosso programa deve executar temos diversas maneiras de criar
o código, porém o mais difícil é criar um código eficiente, rápido e compacto. Na verdade, diversos fatores podem
interferir nestes aspectos da programação, entre eles, a escolha do compilador, o método de estruturar o código, a
orientação do mesmo, etc... Em termos gerais, um código torna-se mais próximo do ideal a medida que suas partes
tornam-se mais simples de se analisar e quando todos os processos estão bem definidos e especializados. Quando
temos um código que contém muito mais exceções do que regras, este precisa de uma reestruturação.
Podemos definir C++ como um "superconjunto" da linguagem C, ou seja, uma linguagem com mais funcionalidades
que a linguagem C. Embora este seja o ponto de vista de quem já tem um conhecimento da linguagem C, ela é muito
mais que isto. Podemos mudar completamente a forma de criar o programa quando usamos os recursos avançados da
linguagem, as estruturas de decisão (por exemplo, if-else ou switch) podem ser simplificadas e a organização
do código pode ser bem mais globalizada e genérica, possibilitando a reutilização do código em diversas situações
diferentes.
Vejamos como as funcionalidades da linguagem C++ podem ajudar a redefinir os meios de programação que
aprendemos com o bom e velho estilo C.
Dois modos de programar
Observando o modo de programar que as linguagens oferecem desde os primórdios