C++ Básico Aula 02: Tipos e Entradas de Fluxo de dados

 Imagem meramente ilustrativa

Tipos de dados

    Assim como o C, o C++ também trabalha com dados do tipo int, float, double e char. O booleano _Bool do C agora será chamado de bool e passa a aceitar os literais booleanos true e false além do 0 do 1 como no C, porém sem a inclusão de um arquivo de cabeçalho para isso.

    A principal diferença entre C e C++ no que diz respeito aos tipos de dados é que o C++ possui o tipo de dado string para cadeia de caracteres, não sendo mais necessária a criação de um vetor (matriz unidimensional) como na linguagem C. Exemplo:

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main () {
  5.   int numeroInteiro = 10; 
  6.   float numeroDecimal = 3.14159265358979323846; 
  7.   double decimalMaisPreciso = 3.14159265358979323846; 
  8.   char caracter = 'J';    
  9.   string cadeiaDeCaracteres = "Linguagem C++";   
  10.   bool booleano = true;  
  11.   cout << "int: " << numeroInteiro << "\n";
  12.   cout << "float: " << numeroDecimal << "\n";
  13.   cout << "double: " << decimalMaisPreciso << "\n";
  14.   cout << "char: " << caracter << "\n";
  15.   cout << "string: " << cadeiaDeCaracteres << "\n";  
  16.   cout << "bool: " << booleano << "\n";
  17.   return 0;
  18. }

    Se você copiou e colou esse código no GDB Online deve ter reparado que tanto o float como o double retornou o mesmo valor 3.14159 omitindo as demais casas decimais o que mostra que para os problemas do dia a dia, não vemos uma diferença prática entre eles.

   Outra coisa que você deve ter reparado é que a variável booleana continua retornando 1 para true e 0 para false, apesar de entender os literais booleanos.

Entrada de dados

    Na aula passada e no exemplo acima vimos como promover a saída de dados em tela com o objeto cout utilizando o operador << Da mesma forma que temos um objeto cout para saída, teremos em C++ o objeto cin para entrada. 

    Neste caso, ao invés do operador de inserção <<, teremos o operador de extração >> para a entrada de fluxo. Exemplo:

  1. #include <iostream>
  2. using namespace std;

  3. int main() {
  4.   int x;
  5.   cout << "Escreva um número inteiro: "; 
  6.   cin >> x; 
  7.   cout << "O quadrado desse número é: " << x*x;
  8.   return 0;
  9. }

    Eu usei de propósito um operador na linha 8 só para lembrá-los que os operadores básicos do C continuam valendo no C++: + para adição, - para subtração, * para multiplicação, / para divisão, % para resto da divisão, ++ para incremento e -- para incremento.

    Repare que a entrada de fluxo em C++ com cin na linha 7 do exemplo acima fica muito mais fácil que entrada de dados em C com o scanf(), pois não precisamos especificar o formato da variável x, nem utilizar ponteiros.

    Essa facilidade fica mais escandalosa na manipulação de Strings. Exemplo:

  1. #include <iostream>
  2. using namespace std;

  3. int main() {
  4.   string nome;
  5.   cout << "Escreva seu nome: "; 
  6.   cin >> nome; 
  7.   cout << "Olá " << nome<<"! Como vai?";
  8.   return 0;
  9. }

Uma dúvida existencial

    Se o C++ tem uma sintaxe mais simples e amigável que o C, porque então ainda utilizamos o C? 

    Vamos lembrar que o C++ foi desenvolvido a partir do C, incorporando mais recursos inclusive permitindo a implementação do paradigma de programação orientada a objetos.

    Na maioria das vezes quando uma linguagem evolui a partir de outra oferecendo mais recursos ela fica mais pesada, gera arquivos executáveis maiores e consome mais recursos de memória.

   Isso também se reflete no tempo de execução de programas que geralmente também tornam-se maiores. Isso em Sistemas Embarcados pode ser um fator limitante em dispositivos com poucos recursos.

   Por essa razão o C ainda tem o seu espaço garantido onde é desejável desempenho e onde o paradigma de programação estruturada atende os requisitos de projeto.

    Já nos projetos onde o paradigma de programação orientada a objetos é um requisito, o C++ será a opção de melhor desempenho quando comparado, por exemplo, com o Python.


Próxima Aula                                                                                                                        Aula Anterior

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.