Introdução
Iniciamos hoje nosso terceiro curso no Blog com o objetivo de dar a aluno noções básicas da linguagem C++. Vou partir do princípio que o estudante já viu aqui o nosso curso de algoritmos e linguagem de programação, como também o nosso curso de linguagem C básico, pois nossa proposta é fazer um curso sequencial.
Sendo assim tentarei não ser repetitivo, explicando novamente conceitos básicos que já vimos nos dois módulos anteriores e vou tomar como base que o aluno já tem algumas noções fundamentadas.
Nossa ideia e focar nas diferenças entre o C e o C++ e apresentar conceitos de Programação Orientada a Objetos, tendo em vista que até agora vimos apenas o paradigma de programação estruturada.
Plataforma de estudo
Continuaremos a trabalhar com a plataforma GDB Online, porém agora o aluno deverá ajustar a language para C++:
![]() |
Tela inicial do GDB Online destacando a seleção da linguagem C++ |
Analisando o primeiro programa
Ao entrar na plataforma e ajustar a linguagem para C++ notamos de pronto algumas diferenças entre o programa "Hello World" da linguagem anterior para a nova (ver figura acima).
A forma de fazer comentários permanece a mesma, isto é, /* e */ delimitando comentários em múltiplas linhas e // para comentários em linhas.
Após as linhas de comentário notamos o #include <iostream> no lugar do #include <stdio.h> habitual da linguagem C. Ambas as instruções tem por objetivo avisar ao compilador para incluir um arquivo de biblioteca padrão.
No caso ambos conferem ao programa recursos que controlam as entradas e saídas padrão. As diferenças de nome se devem ao fato do C++ trabalhar com a entrada e saída de fluxos (stream) ou invés de dados.
Outra diferença é que stdio.h declara funções e variáveis para manipular teclado(entrada) e tela(saída), enquanto que iostream declara classes e objetos para basicamente fazer a mesma coisa. Isso ficará mais claro quando abordarmos o assunto POO, isto é, a Programação Orientada a Objetos.
Mais abaixo temos novamente a presença de uma função main() que retorna ao Sistema Operacional o inteiro 0 quando o programa encerra de maneira correta. No entanto, na linha 13 é que as diferenças entre o C e C++ ficam gritantes.
Onde anteriormente veríamos algo como:
printf("Hello World");
... encontramos:
std::cout<<"Hello World";
Como isso dever ser interpretado?
Ambas as instruções mostram na saída da tela a cadeia de caracteres "Hello World, porém em C++ no lugar da função printf() temos o objeto cout. Por questões de compatibilidade o C++ ainda aceita o uso do printf() porém a recomendação é usar o cout porque o tempo de execução é menor.
No cout eu não tenho parâmetros entre parenteses porque ele não é uma função é um objeto, e usamos o operador << para enviar a cadeia de caracteres para ele. No C++ este operador é chamado de operador de inserção, enquanto que no C ele é um operador de deslocamento de bits (veremos no momento apropriado).
Outra diferença é que no printf() eu direcionava a saída da informação para a saída padrão que era a tela. Agora eu preciso especificar qual saída eu quero usar. Se é a saída padrão a instrução std:: deve preceder o objeto cout.
Usando namespace
O namespace é uma forma de organizar o seu código evitando conflitos entre elementos de mesmo nome ou com mesmo propósito. Por exemplo eu precisei usar std:: no cout para especificar que a saída do fluxo de dados seria a tela.
No entanto eu posso especificar no início do programa que o namespace a ser utilizado pelas instruções será o std. Assim isso já fica implícito de forma que eu não precisarei especificar qual será a saída em cada linha do programa. Exemplo:
- #include <iostream>
- using namespace std;
- int main() {
- cout << "Hello World!";
- cout << "\nAló Mundo!";
- cout << "\nAló Raimundo!";
- cout << "\nAló "<<"Rai!";
- return 0;
- }
Repare que o código especial de quebra de linha \n continua disponível no C++. Outra novidade é a forma de concatenar: "\nAló "<<"Rai!"; permite concatenar as duas strings e enviá-las para cout, gerando como saída: Aló Rai!
Ao longo desse minicurso abordaremos outras diferenças. Por hora paramos por aqui.
Referências
DEITEL, H. M. DEITEL, P. J. C++: Como programar. Pearson Education do Brasil. 2006.
GBDONLINE. Learn C++ Programming. Disponível em: <https://learn.onlinegdb.com/c%2B%2B_for_beginners> Acesso em 05 ago. 2024.
W3SCHOOLS. C++ Tutorial. Disponível em: <https://www.w3schools.com/cpp/default.asp> Acesso em 05 ago. 2024.