441 livro_cpp

Download 441 livro_cpp

Post on 08-Jul-2015

166 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

C++ Multiplataforma e Orientao a Objetosverso preliminarEssa verso no foi 100% revista, mas est sendo liberada a pedido de muitos alunos.

Por Sergio Barbosa Villas-Boas (sbVB) Email: sbvb@sbvb.com.br URL: www.sbvb.com.br Verso 7.0, de 23 de Maro de 2006 Consultor em tecnologia e estratgia para desenvolvimento de software multiplataforma, baseado em tecnologias gratuitas e padres abertos.

Sobre o AutorSergio Barbosa Villas-Boas atua como Professor Adjunto no DEL (Departamento de Engenharia Eletrnica e Computao da UFRJ), desde 1987. Sua carreira sempre esteve ligada a desenvolvimento de software. J trabalhou com instrumentao e controle, em sistemas em tempo real, em simulao numrica, sistemas cliente-servidor, sistemas GUI multiplataforma (com wxWidgets), segurana de informao, sistemas web, integrao de sistemas e XML (principalmente com Xerces), sistemas corporativos, sistemas baseados em componentes, objetos distribudos, uso de software gratuito, entre outros assuntos. Ultimamente tem havido nfase no desenvolvimento de sistemas usando o paradigma orientado a objetos. Desde a volta do doutorado no Japo, em 1998, tem se dedicado ao ensino na universidade, e ao continuado aprendizado por participar de diversos cursos e conferncias. Alm disso, dedica-se a projetos de extenso universitria, em geral com consultoria especializada em parcerias com diversas empresas. Participou e participa diretamente de diversos projetos de desenvolvimento de software, especialmente para COTS (Commercial Off-The-Shelf, ou produto de prateleira), usando principalmente C++ multiplataforma e tambm java. Desde 2000, mantm o site www.sbvb.com.br, onde divulga o material de diversos cursos que ministra. Esse livro est sendo re-editado em funo de vrios pedidos, mas no o material mais recente e revisado do autor a respeito de C++. Os slides do curso disponveis no site esto mais atualizados que esse livro.

2 / 441

ndiceSobre o Autor.......................................................................................................................2 ndice .....................................................................................................................................3 1 1.1 1.2 1.3 2 2.1 2.2 2.3 2.4 2.5 2.6 2.6.1 2.7 2.8 2.9 2.9.1 2.10 2.11 2.12 2.13 2.13.1 2.13.2 2.14 2.15 2.16 2.16.1 2.16.2 2.16.3 2.17 Introduo ...............................................................................................................14 Prefcio .................................................................................................................14 Histrico do livro.................................................................................................19 Como usar o livro ................................................................................................21 Tecnologia da informao e negcios.................................................................24 Experincia de vida e viso de negcios.........................................................24 Negcios forjam a tecnologia............................................................................27 Classificao dos atores do ambiente para TI ..............................................29 Ambiente econmico e modelo de negcio....................................................30 Web impacta ambiente econmico .................................................................31 Analogia entre militarismo e negcios............................................................32 Inteligncia 33 Conhecimento empacotado..............................................................................34 O produto software .........................................................................................36 Analogia entre biologia e negcios ..................................................................38 Zona de conforto 39 Resultado da competio: resta um ou poucos ............................................40 Melhores prticas................................................................................................40 Incorporao de novidades ...............................................................................41 Mercadoria e produto diferenciado .................................................................44 Mercadoria escassa 45 Estratgia lucrativa 46 O objetivo atender ao cliente ?......................................................................47 Vantagem competitiva.......................................................................................49 Sociedade do conhecimento.............................................................................50 Mudana do paradigma de negcios Mercadorizao 53 52

Remunerao agregao de valor na cadeia produtiva 54 Polticas de apoio a economia do software.................................................54 3 / 441

2.17.1 2.17.2 2.17.3 2.17.4 2.18 2.18.1 2.18.2 2.18.3 2.18.4 2.18.5 2.18.6 2.18.7 2.19 2.20 2.21 2.21.1 2.21.2 2.21.3 2.21.4 2.22 2.22.1 2.23 2.24 2.25 2.26 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2

O que o governo pode fazer 54 O que os indivduos podem fazer 56 O que as universidades podem fazer O que as empresas podem fazer 57 Livro no Sculo 21...............................................................................................58 O modelo tradicional 58 Mudanas no ambiente O novo modelo 61 Leitor gosta de ter livro em formato eletrnico Aferio de mrito acadmico Idioma Portugus no mundo 65 66 66 Quem est usando o modelo novo 63 59 56

Tribos de tecnologia ...........................................................................................67 A escolha tecnolgica uma escolha estratgica.........................................68 Java C++ ...........................................................................................................70 Porque sim Java Porque no Java Porque sim C++ Porque no C++ Anlise SWOT 78 Resumo .................................................................................................................80 Estratgia e C++ ................................................................................................83 Humor ...................................................................................................................84 Exerccios .............................................................................................................84 Conceitos introdutrios ........................................................................................87 Breve histria do C/C++....................................................................................87 Classificao de interfaces de programas ......................................................89 Programando para console ...............................................................................90 Linguagens de programao de computador................................................90 Conhea o Seu Compilador ..................................................................................92 Visual C++ 6.0 SP5 .............................................................................................92 Reconhecendo o Compilador Hello world para DOS 4.1.2.1 98 4 / 441 92 70 71 73 74

Estratgia para integradores de soluo........................................................75

Adicionando argumentos para a linha de comando ....................101

4.1.3 4.1.4 4.1.5

Usando o Help 102 Projetos (programas com mltiplos fontes) Bibliotecas 4.1.5.1 4.1.5.2 4.1.5.3 104 103

Fazer uma biblioteca..........................................................................104 Incluir uma biblioteca num projeto ................................................106 Examinar uma biblioteca ..................................................................106 106 108 Macro para formatao do texto fonte...........................................108 Acrescentando Lib no Project Settings .........................................125 Class View.............................................................................................126 Usando bibliotecas de ligao dinmica (DLL) ...........................127 DLL para Windows.............................................................................131 Otimizao do linker para alinhamento de cdigo ......................131 131

4.1.6 4.1.7

Debug 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.4 4.1.7.5 4.1.7.6

Dicas extras

4.1.8 4.2 4.2.1 4.2.2 4.3 4.3.1 4.3.2 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.5 4.5.1 4.5.2 4.5.3 4.5.4

Detectando vazamento de memria Reconhecendo o Compilador Hello world para DOS 4.2.2.1 MinGW djgpp 134 133

Borland C++ builder 5.0..................................................................................133

Adicionando argumentos para a linha de comando ....................136 137 137 138

C++ para win32 gratuito .................................................................................137

Dev-C++ 4.0 .......................................................................................................138 Reconhecendo o Compilador Hello world 4.4.2.1 139

Adicionando argumentos para a linha de comando ....................140 142

Usando o Help 142 Projetos (programas com mltiplos fontes) Hello world 4.5.1.1 143 g++ (do unix) ....................................................................................................142 Adicionando argumentos para a linha de comando ....................143 143

Usando o Help 143 Projetos (programas com mltiplos fontes) Bibliotecas 4.5.4.1 144 5 / 441

Incluir uma biblioteca num projeto ................................................144

4.5.4.2 4.5.4.3 4.5.5 4.5.6 4.5.7 4.5.8 4.5.5.1 Debug

Fazer uma biblioteca..........................................................................144 Examinar uma biblioteca ........................................................