[Quase] Curso de C++
por
em 20-04-2010 às 20:15 (13324 Visualizações)
Apresentação
Olá! Bem, um amigo do fórum começou a fazer alguns tutoriais de Java, e eu lembrei que estava devendo uns de C++.
Eu não sei tudo sobre C++, aprendi na internet, então qualquer erro podem postar nos comentários, para a correção.
Neste 'curso', pretendo ensinar desde o começo de C++. O que nos remete a um mito.
O Mito
Há uma crença muito difundida na sociedade, que se aprende primeiro C para depois aprender C++: isso é a mais pura mentira! Como uma linguagem avançada como C++, ela já se afastou tanto da sua 'mãe' C, que hoje não se pode exigir C para aprender C++. Como exemplo, aprendi C++ direto.
Outro mito: C++ é mais lento que C. Balela... Isso depende da implementação do programa, e não da linguagem. Há até mesmo programas mais rápidos em C++ que em C, mesmo usando todas as 'novidades' de alto nível do C++.
Mais um mito inicial: Existe uma linguagem C/C++. Realmente, não é um mito, mas aconselho não misturar. C é C e C++ é C++.
O comecinho
Bem, temos que começar:
Linha 1:Código PHP:
#include <iostream>
int main() {
std::cout << "Olá mundo!" << std::endl;
return 0;
}
Bem, essa é uma linha do preprocessor. Encare ele como um robozinho legal, que toda vez que lê "#comando", executa esse comando. No caso, o comando é include, o que o comanda a abrir o arquivo iostream e incluir seu conteúdo neste lugar. iostream é um arquivo onde existem definições de I/O para C++. Encare como arquivo essencial para esse início.Código PHP:
#include <iostream>
Note que as linhas do preprocessor não são terminadas com ponto e vírgula, já as linhas do código sim.
Linha 3:É a nossa função main. Toda vez que o programa é executado, o sistema operacional executa essa função. Há ela em outros formatos, que não vou abordar neste post. O básico de uma função, é que existe o valor de retorno (nesse caso, int, números), o seu nome (main), os valores a serem passados para a função (nesse caso, nenhum valor é passado, eles ficam entre os parênteses). A função é delimitada por chaves.Código PHP:
int main() {
Linha 4:Humm, std::cout. STD é o namespace e cout é a função dentro do namespace. Complicado? É, programação orientada a objetos é chato! Encare no momento como uma pasta: std é a pasta principal, onde dentro dela tem um arquivo chamado cout, e dentro desse arquivo tem a implementação da função. std::endl é a mesma coisa, dentro do seu 'arquivo', existe só duas letras: "\n". Elas são o caractere que marca 'nova linha' no linux, outros sistemas operacionais usam outros caracteres, por isso de usar endl. Cada sistema operacional terá seu caractere definido quando for compilar.Código PHP:
std::cout << "Olá mundo!" << std::endl;
Linha 5:Toda função tem que retornar algo. No caso da main, retorna um número. Assumimos que 0 é retorno com sucesso, e outro número, retorno sem sucesso.Código PHP:
return 0;
Notem novamente que as linhas de código são terminadas com ponto e vírgula, e que o 'corpo' das funções é delimitado por chaves.
Compilando
Como estou focando em Linux (gambiarras com MinGW e CygWin servem), usaremos o compilador mais famoso que eu conheço. O GCC.
Vamos salvar o arquivo com o nome de exemplo.cpp. Extensão .cpp significa "C++" (arquivos em C, extensão .c)
Para compilar executamos:
Explicando: g++: Compilador C++, ele nada mais faz que transformar seu código em algo que seu computador possa entender.Código :g++ exemplo.cpp -o exemplo
exemplo.cpp: é o arquivo onde contém o código a ser compilado
-o: uma opção do g++, comanda para que o arquivo final seja salvo com o nome seguinte, no caso, exemplo. Se não dermos essa instrução, em sua maioria, o arquivo gerado será a.out. Procurem sempre especificar o arquivo de saída, por organização e para facilitar o 'estudo'
Pronto, compilado. Doeu? Agora só executar:
Pronto, acaba de fazer seu primeiro programa em C++.Código :./exemplo
Se houver qualquer erro, certifique que tenha digitado tudo corretamente. Se mesmo assim estiver dando erro, pode ter sido uma falha minha, visto que sou humado, e que estou fazendo isso escondido na aula de programação do meu curso técnico (paradoxal não?).
P.S: se possível, administradores, coloquem um syntax highlight para C++. Frescura minha, mas acho que fica melhor que usar a tag PHP para 'colorir', o que paradoxalmente, reconhece direitinho C++ pelo que estou vendo.
Comentários
+ Enviar Comentário