Como se adaptar ao C++ após aprender C?

1. Como se adaptar ao C++ após aprender C?

Natã Molima Marques
mrroot

(usa Debian)

Enviado em 30/06/2017 - 14:21h

Olá pessoal.
Eu aprendi a programar em C, mas vi que alguns de meus projetos precisam de um toque de modernidade, e pesquisa vai e pesquisa vem, encontrei informações de que C++ tem o que preciso.
É possivel fazer tudo em C, mas o trabalho seria maior, e C++ me pouparia tempo.
Eu quero estudar C++ mas não consigo encontrar conteúdo que possa me ajudar.
A duvida é, o que vocês recomendam para alguém que está migrando do C para o C++?
Quais livros e quais práticas?
Obrigado


  


2. Re: Como se adaptar ao C++ após aprender C?

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/06/2017 - 14:37h

Eu sei que C++ ajuda de cara na criação de vetores, no tratamento de strings e no uso de alocação de memória.

Pensar como passar algo de C para C++ pela orientação a objetos pode ser complicado.

Talvez seja necessário aprender OO como se aprende algoritmos antes de se programar.

Livros? Tem o do cara que criou C++. Conheço mais livros de C que de C++ em português.

Tem o Deitel C++, já vi meterem o pau no livro.

Há uns apontamentos sobre a desatualização de livros que deixarei para depois.


3. Re: Como se adaptar ao C++ após aprender C?

Natã Molima Marques
mrroot

(usa Debian)

Enviado em 30/06/2017 - 14:58h

listeiro_037 escreveu:

Eu sei que C++ ajuda de cara na criação de vetores, no tratamento de strings e no uso de alocação de memória.

Pensar como passar algo de C para C++ pela orientação a objetos pode ser complicado.

Talvez seja necessário aprender OO como se aprende algoritmos antes de se programar.

Livros? Tem o do cara que criou C++. Conheço mais livros de C que de C++ em português.

Tem o Deitel C++, já vi meterem o pau no livro.

Há uns apontamentos sobre a desatualização de livros que deixarei para depois.


Cara eu ficaria muito grato se me ajudasse nessa, com bons livros. Eu baixei o C++ beginners guide, tudo em inglês, e meio que está sendo chato aprender em inglês, pois eu entendo, mas tem coisas que não entendo.


4. Re: Como se adaptar ao C++ após aprender C?

tarrask
tarrask

(usa Void Linux)

Enviado em 30/06/2017 - 15:01h

o Deitel C++ é bem didático...

pelo menos com o C 6ª edição estou entendendo bem e tem uma parte q é só sobre C++


_____________________________________________________________________________
"Tudo deve ser feito da forma mais simples possível, mas não mais simples que isso" - Albert Einstein
_____________________________________________________________________________


5. Re: Como se adaptar ao C++ após aprender C?

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/06/2017 - 15:11h

Posso dizer que este livro deixou-me curioso: https://www.saraiva.com.br/c-moderno-e-eficaz-42-formas-especificas-de-aprimorar-seu-uso-de-c11-e-c1...

Não posso dar como sugestão porque ainda não o vi. Chama a atenção o fato das tais atualizações da linguagem. Talvez para quem já conhece e queira se atualizar.

Pode ser bom para quem está acostumado com livros de Turbo C++ (agora deve ter dado vergonha alheia). ¬¬


6. Re: Como se adaptar ao C++ após aprender C?

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 30/06/2017 - 22:52h

Postei um dica um tempo atrás com alguns títulos: https://www.vivaolinux.com.br/dica/Lista-de-livros-C/

Eu diria que os melhor título para iniciar é o "Princípios e Práticas de Programação Com C++", escrito pelo Bjarne Stroustrup.
Deitel é bem didático e de fácil leitura, mas está desatualizado. O título anterior já está atualizado com o padrão do C++11/14.
Existe um título nacional, voltado para C++ e também já atualizado com C++11/14, que é "C++: Explicado e Aplicado" do autor Vilmar Votre.

Quanto a série "C++ eficaz" do Scott Meyers, são de nível intermediário. Essa série eu recomendo fortemente a qualquer um que possua interesse em C++ e possua conhecimento prévio, pois ele analisa detalhes e armadilhas que linguagem traz.


7. Re: Como se adaptar ao C++ após aprender C?

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/06/2017 - 23:21h

Gostaria de aproveitar para perguntar se existem apostilas de C e C++ em português em PDF para estudo OFF-LINE em laboratórios de informática que não usam internet por motivos óbvios.

Procurei e nada foi satisfatório. Gostaria de uma opinião de quem sabe o que melhor pode ser considerado como atualizado.

A maioria dos cursos universitários ensina com material desatualizado. Poderia abusar e até citar IDEs de vinte anos atrás. O foco não é exatamente C porque existem coisas mais importantes. O pessoal vai atrás de aprender VB, C# e Java. Antigamente era Delphi. Se houver patrocínio da M$, então pode rolar um ASP.

Portanto quem quiser C e C++ que corra atrás depois do curso. A base do curso de C geralmente tem coisas como os tipos "principais" antigos, vetores, ponteiros , endereços de memória, strings, algumas funções matemáticas e um pouco de uso de arquivos. Tem base de algoritmos, senão nada se faz. É por aí.

Então, alguém sabe? Só em português, PDF se não for insistir muito.


8. Re: Como se adaptar ao C++ após aprender C?

Paulo
paulo1205

(usa Ubuntu)

Enviado em 01/07/2017 - 17:33h

Se você realmente já sabe C, eu recomendo a 4ª edição do The C++ Programming Language, do Bjarne Stroustrup.

No capítulo introdutório, ele tem inclusive as seguintes dicas para um leitor vindo do mundo do C.

1.3.3. Suggestions for C Programmers

The better one knows C, the harder it seems to be to avoid writing C++ in C style, thereby losing many of the potential benefits of C++. Please take a look at Chapter 44, which describes the differences between C and C++.

[1] Don’t think of C++ as C with a few features added. C++ can be used that way, but only suboptimally. To get really major advantages from C++ as compared to C, you need to apply different design and implementation styles.

[2] Don’t write C in C++; that is often seriously suboptimal for both maintenance and performance.

[3] Use the C++ standard library as a teacher of new techniques and programming styles. Note the difference from the C standard library (e.g., = rather than strcpy() for copying and == rather than strcmp() for comparing).

[4] Macro substitution is almost never necessary in C++. Use const (§7.5), constexpr (§2.2.3, §10.4), enum or enum class (§8.4) to define manifest constants, inline (§12.1.5) to avoid function-calling overhead, templates (§3.4, Chapter 23) to specify families of functions and types, and namespaces (§2.4.2, §14.3.1) to avoid name clashes.

[5] Don’t declare a variable before you need it, and initialize it immediately. A declaration can occur anywhere a statement can (§9.3), in for-statement initializers (§9.5), and in conditions (§9.4.3).

[6] Don’t use malloc(). The new operator (§11.2) does the same job better, and instead of realloc(), try a vector (§3.4.2). Don’t just replace malloc() and free() with “naked” new and delete (§3.2.1.2, §11.2.1).

[7] Avoid void*, unions, and casts, except deep within the implementation of some function or class. Their use limits the support you can get from the type system and can harm performance. In most cases, a cast is an indication of a design error. If you must use an explicit type conversion, try using one of the named casts (e.g., static_cast; §11.5.2) for a more precise statement of what you are trying to do.

[8] Minimize the use of arrays and C-style strings. C++ standard-library strings (§4.2), arrays (§8.2.4), and vectors (§4.4.1) can often be used to write simpler and more maintainable code compared to the traditional C style. In general, try not to build yourself what has already been provided by the standard library.

[9] Avoid pointer arithmetic except in very specialized code (such as a memory manager) and for simple array traversal (e.g., ++p).

[10] Do not assume that something laboriously written in C style (avoiding C++ features such as classes, templates, and exceptions) is more efficient than a shorter alternative (e.g., using standard-library facilities). Often (but of course not always), the opposite is true.

To obey C linkage conventions, a C++ function must be declared to have C linkage (§15.2.5).







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts