Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

[Artigo] A Linguagem C++

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C# / C++ [Artigo] A Linguagem C++

    Olá pessoal

    Nesse tópico/artigo pretendo falar um pouco sobre a Linguagem C++, afinal, é interessante saber não apenas a utilizá-la mas quais são as raízes, os própositos iniciais para os quais ela foi criada, suas vantagens e desvantagens e etc =)

    Bom...como vocês devem já saber o C++ é derivado do C, portanto não tem como ficar sem citar algumas coisas sobre a linguagem C.

    As Origens do C++ ( C++ Begins :cool: ) :
    Bom...o C++ começou nos laboratórios da Bell, em 1983 , por um cara chamado Bjarne Stroustrup (não me pergunte como fala isso ), inicialmente o C++ se chamava "C with classes" ("C com classes"), logicamente porque era a linguagem C acrescida de classes (tem como fazer uma espécie de "classe" em C, mas o trabalho é meio árduo, então use C++ se precisar usar classes ). Com o passar do tempo a linguagem passou a ser melhorada e muitas novidades foram sendo acrescentadas e, com isso, passou a ser oficialmente chamada de C++. A linguagem já passou por 2 padronizações (discutiremos sobre isso mais pra frente) e pra este ano está prevista um "novo C++", se não me engano o nome será "C++09" (não sei se já foi lançado o padrão C++09)

    Bom...mas pra que o nosso amigo ali em cima (Bjarne Stroustrup) queria fazer uma nova versão do C?

    Não vou entrar muito nos detalhes, senão eu vo escrever um post que vai ocupar toda a cota de banco de dados do fórum
    Basicamente, ele precisava fazer uma versão distribuída do kernel do Unix ("pai" do Linux =P).
    O Unix era feito em C e esta era uma linguagem muito compatível, então a base da "nova versão" precisava ser a linguagem C. Como ele era muito inteligente :cool: , ele começou a implementar alguns conceitos encontrados no Simula (uma outra linguagem) na linguagem C,
    conceitos que ele percebeu que eram de grande utilidade para os objetivos dele.


    Bom...acho que chega de história, quem quiser se aprofundar mais e conhecer todas as modificações implementadas pelo nosso amigo, sugiro o Google =)

    Qual é a diferença entre C e C++ ?
    Essa é uma pergunta inevitável para quem vai começar em C/C++, quase todos fazem essa pergunta. As diferenças são muitas, porém, vou citar as mais importantes.
    - C++ é orientado a objetos, C não;
    - C++ possui classes, C não;
    - C++ possui herança múltipla, C possui herança simples;
    - C++ possui tratamento de exceções.
    entre outras...

    Black-Hat, devo começar com C ou C++ ?
    Bom...depende de sua "origem", se você já mexe com linguagens que são orientadas a objetos, sugiro começar direto no C++. Se você vai começar sua primeira linguagem de programação, sugiro que comece com C pra aprender o básico e depois passe para o C++.
    Há quem diga que é interessante começar primeiro no C e depois ir pra C++, independente da sua linguagem anterior.
    A Unicamp, por exemplo, opta por começar com a linguagem C (faço ciência da computação lá :cool: ). Na minha opinião, se você já tem um bom conhecimento em programação e já mexe com orientação a objetos, você deve começar no C++

    Desvantagens do C++ :
    Infelizmente o C++ não é perfeito , a primeira grande falha é a falta de padronização. "Mas, Black, você não disse que ela já passou por 2 padronizações?!?" ... Sim, mas mesmo assim ela continua sem ser padronizada, para ver isso, basta pegar como exemplo as duas grandes vertentes atuais do C++, existem praticamente dois C++ hoje em dia, o da Microsoft, cujo compilador é o Visual C++ e o popularmente chamado "C++ do Linux" ou "C++ GNU" , cujo compilador é o gcc. Isso acaba atrapalhando, pois você tem que se adaptar ao compilador e as mudanças são relativamente profundas. Mas um bom programador em C++ DEVE saber programar nos dois ambientes
    A segunda grande desvantagem do C++, são coisas que ele herda dos computadores antigos, isto é, limitações quanto a tamanhos máximos de variáveis e etc. Hoje em dia, os compiladores tendem a tentar melhorar essas limitações, alocando mais bytes para as variáveis que antes eram muito limitadas.
    Uma terceira desvantagem, que eu não considero como uma desvantagem propriamente dita, mas só como uma "dificuldadezinha a mais" é o fato de, apesar de ser orientada a objetos, não é fácil fazer Forms em C++ (quando você pega prática fica fácil ), isto é, aquelas janelinhas que você fazia no VB, apenas arrastando controles e desenhando, não é possível fazer isso visualmente no C++, você faz o Form via código e tem de escrever as cordenadas dos controles e etc. Existem alguns plugins como o wxWidgets que criam uma espécie de ambiente visual pra você montar os forms, mas estou falando do C++ puro

    Vantagens do C++:
    Muitos dizem que C++ é linguagem de alto nível, eu considero médio nível. O nível de abstração do C++ é muito menor do que o do Delphi ou VB, por exemplo. Por ser uma linguagem de nível médio e possuir nível de abstração menor, o C++ é mais prático para interagir com o hardware da máquina, para manipular arquivos, memória, bytes...
    A segunda vantagem é a portabilidade, C++ é multiplataforma ( o GNU C++ ), isto é, se você não usar bibliotecas específicas do sistema operacional, teoricamente você consegue compilar em qualquer sistema (ou quase qualquer sistema) , com poucas modificações no código (obviamente, não adianta querer compilar C++ do Visual C++ no Linux ).
    Existem mais vantagens como a herança múltipla e a orientação a objetos, por exemplo.


    Enfim, C++ é melhor do que C, com certeza (e era pra ser né?, afinal se chama C++) e, na minha opinião, todo programador precisa saber, pois é utilizada em larga escala.

    Alguns ambientes de desenvolvimento para o GNU C++ :
    Existem muitos, vou citar alguns, que são os que eu conheço:
    - Dev-cpp (ou Dev-c++): Usa o gcc como compilador e, no caso do windows, usa o MinGW, que é a versão do GCC para Windows. Particularmente não gosto do Dev-cpp, acho a indentação dele ruim e tem algumas outras desvantagens.

    - Eclipse: O Eclipse é um ótimo ambiente de desenvolvimento e também possui versões para Windows e Linux. Também existe uma versão do Eclipse para desenvolver Java, muito boa por sinal =)

    - Code::Blocks: Na minha opinião, o Code::Blocks dé de 10 a 0 nos outros, a indentação é muito boa, compilação rápida , não é pesado e se você quiser pode usar vários compiladores, você pode instalar o MinGW (no windows) e usá-lo, você pode pedir pra ele compilar com o compilador do Visual C++ e assim vai...

    Conclusão:
    Bom...é isso que eu tinha pra escrever =)
    Lembrando que aqui não tem todas as informações da linguagem, meu objetivo é dar um conhecimento básico sobre as origens/objetivos da linguagem. Uma espécie de resumo
    Lembrando que tudo o que está escrito aqui é de autoria minha e se for copiar coloque os créditos (a não ser que você seja um leecher lammer maldito, daí não adianta falar, né? =P)
    Não copiei nada de nenhum lugar... :cool:
    Se gostar, agradeça, um clique não custa nada =)

    Flws a todos
    Last edited by RafaelVenancio; 18-12-2009, 19:38.
    Black-Hat.

  • Font Size
    #2
    esse e um bom artigo mas vc poderia falar da nova IDE que esta surgindo o c++0x eu tinha dado uma pesquisada na net e vi que a grande parte da sua biblioteca foi totalmente reformulada para atender as novas demandas dos programadores intermediarios e profissionais, visto que o c++0x também tera suas falhas mas não serao deixadas a ponto de que usuarios profissionais a deixem a desejar por isso na minha opinião me corrija se eu estiver errado o c++0x sera uma nova revolução para o padrão c,c++ dentre outras IDE´s do mesmo. Mas mesmo assim cara meus parabéns pelo artigo me serviram de grande utilidade pelas informações postas valeu mesmo.

    Comment

    X
    Working...
    X