441 livro_cpp

Download 441 livro_cpp

Post on 08-Jul-2015

166 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<p>C++ Multiplataforma e Orientao a Objetosverso preliminarEssa verso no foi 100% revista, mas est sendo liberada a pedido de muitos alunos.</p> <p>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.</p> <p>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.</p> <p>2 / 441</p> <p>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</p> <p>Remunerao agregao de valor na cadeia produtiva 54 Polticas de apoio a economia do software.................................................54 3 / 441</p> <p>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</p> <p>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</p> <p>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</p> <p>Estratgia para integradores de soluo........................................................75</p> <p>Adicionando argumentos para a linha de comando ....................101</p> <p>4.1.3 4.1.4 4.1.5</p> <p>Usando o Help 102 Projetos (programas com mltiplos fontes) Bibliotecas 4.1.5.1 4.1.5.2 4.1.5.3 104 103</p> <p>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</p> <p>4.1.6 4.1.7</p> <p>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</p> <p>Dicas extras</p> <p>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</p> <p>Detectando vazamento de memria Reconhecendo o Compilador Hello world para DOS 4.2.2.1 MinGW djgpp 134 133</p> <p>Borland C++ builder 5.0..................................................................................133</p> <p>Adicionando argumentos para a linha de comando ....................136 137 137 138</p> <p>C++ para win32 gratuito .................................................................................137</p> <p>Dev-C++ 4.0 .......................................................................................................138 Reconhecendo o Compilador Hello world 4.4.2.1 139</p> <p>Adicionando argumentos para a linha de comando ....................140 142</p> <p>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</p> <p>Usando o Help 143 Projetos (programas com mltiplos fontes) Bibliotecas 4.5.4.1 144 5 / 441</p> <p>Incluir uma biblioteca num projeto ................................................144</p> <p>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</p> <p>Fazer uma biblioteca..........................................................................144 Examinar uma biblioteca ..................................................................145 Instalando uma biblioteca dinmica ..............................................146 148 149</p> <p>Fazendo uma biblioteca usando libtool 145</p> <p>Definindo um identificador para compilao condicional 148 O pacote RPM do linux 4.5.8.1 4.5.8.2 4.5.8.3 rpm binrio e rpm com fonte............................................................149 Alguns comandos do rpm .................................................................149 Construindo um rpm..........................................................................150</p> <p>4.5.8.3.1 Introduo ........................................................................................150 4.5.8.3.2 O header ............................................................................................151 4.5.8.3.3 Preparao (prep) ...........................................................................152 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.13.1 6 6.1 6.2 6.3 6.4 6.5 6.5.1 Princpios de C/C++ ............................................................................................154 O primeiro programa........................................................................................154 Formato livre .....................................................................................................154 Chamada de funo ..........................................................................................155 Declarao e definio de funes.................................................................155 Comentrios.......................................................................................................156 Identificador.......................................................................................................156 Constantes literais ............................................................................................157 Escopo.................................................................................................................157 Tipos de dados padro (Standard Data Types) .........................................158 Palavras reservadas do C++ (keywords) .....................................................158 Letras usadas em pontuao..........................................................................159 Letras usadas em operadores.........................................................................159 Exerccios resolvidos ........................................................................................159 Resposta 160 Estrutura do Compilador....................................................................................161 Entendendo o Compilador ..............................................................................161 Prottipos (prototypes)...................................................................................162 Projetos em C/C++ ...........................................................................................164 Header Files (*.h) ............................................................................................166 Biblioteca (library) ..........................................................................................167 Utilizando Bibliotecas prontas 167 6 / 441</p> <p>6.5.2 6.6 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.8 7.9 7.10 7.10.1 7.11 7.12 7.13 7.14 7.15 7.16 7.17 7.18 7.19 7.20 8 8.1 8.2 8.3 9 9.1</p> <p>Fazendo bibliotecas 168 Regras do compilador ......................................................................................169 Linguagem C/C++................................................................................................171 Chamada de funo por referncia e por valor ...........................................171 Tipos de dados definidos pelo programador ...............................................172 Maquiagem de tipos (type casting) ..............................................................173 Operaes matemticas ..................................................................................174 Controle de fluxo do programa ......................................................................174 Execuo condicional.......................................................................................175 Laos (loop) de programao.........................................................................175 Lao tipo do-while 175 while for 176 Alterando o controle dos laos com break e continue Exerccio 178 switch-case .........................................................................................................178 arrays ...................................................................................................................179 Ponteiros.............................................................................................................181 Ponteiro para ponteiro 182 Arrays e ponteiros.............................................................................................184 Arrays multidimensionais ...............................................................................184 Parmetros da funo main .......................................................................</p>