Linguagem de programação imperativa e bloco-estruturada: subprogramas, recursividade, arquivos, tipos de dados estruturados, alocação dinâmica de memória. Estruturas avançadas, pré-processador, modularização. Programação orientada a eventos. Estilo de programação.
1. Compreender os conceitos fundamentais do paradigma de orientação de objetos;
2. Implementar ferramentas de software utilizando uma linguagem orientada a objetos;
3. Continuar os estudos em programação avançada.
1.1. Paradigma de programação orientada a objetos
1.2. Diagrama de classes
1.3. Origens e Características da linguagem
1.4. Ambiente de desenvolvimento e execução
1.5. Expressões e comandos
2.1. Conceito de abstração
2.2. Classes e instâncias
2.2.1. Atributos
2.2.2. Métodos
2.3. Encapsulamento
2.3.1. Declaração e visibilidade de atributos
2.3.2. Declaração e visibilidade de métodos
3.1. Relacionamentos entre Classes
3.2. Construtores
3.3. Sobrecarga
3.5. Atributos e métodos de classe
3.6. Auto-referência
3.7. Modularização (agrupamento de classes relacionadas)
4.1. Hierarquia de classes
4.2. Classes abstratas
4.3. Polimorfismo
4.4. Conversão dinâmica de tipos
5.1. Gerando exceções
5.2. Criando exceções
5.3. Asserções
6.1. Fluxos de E/S
6.2. Manipulação de arquivos
DEITEL, HARVEY M et al -- C++ : Como Programar. Porto Alegre : Bookman, 2001.
SCHILDT, H. -- C++: the complete reference. Berkeley: McGraw Hill, 1998.
JAMSA, K. -- Aprendendo C++. São Paulo: Makron Books, 1999.
SCHILDT, H. -- Schildt's Expert C++, Osborne MacGrawHill, 1996.
STROUSTRUP, B. -- The C++ Programming Language. Reading: Addison-Wesley, 1997.
ZEIGLER, B. -- Objects and systems : principled design with implementations in C++ and Java. Springer, 1997.
Onde T é a média dos 2 trabalhos realizados ao longo da disciplina