Lista de exemplos de código C++

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Lista de exemplos de código C++

Mensagem por MauvadO em Seg Abr 06, 2015 5:38 am

Este é um exemplo de um programa mínimo que faz nada. Ele começa sua execução e logo termina. A função main é definida como o ponto de início de qualquer programa C++.
Código:
int main()
{
}

Programa Olá Mundo
Código:
# include <iostream> // Necessário para std::cout e std::endl
 
int main()
{  
   std::cout << "Olá, Mundo!" << std::endl;
}
Nota-se no exemplo acima a declaração local de quais espaços de nomes estão sendo utilizados.
Gabaritos
Este é um exemplo da utilização de gabaritos para a substituição da seguinte macro de programação comumente utilizada em C, apesar de bastante insegura4 , para o retorno do maior entre dois elementos dados:
Código:
// versão utilizando macros
 
# define max( x, y ) ( x > y ? (x) : (y) )
 
// versão utilizando gabaritos, muito mais segura e com checagem de tipo
 
template <typename T>
T max(T x, T y)
{
   return (x > y) ? x : y;
}
Polimorfismo estático
Este é um exemplo de polimorfismo resolvido em tempo de compilação de código, representando a sobrecarga de funções.
Código:
extern void EnviaTrabalhoParaImpressora( TrabalhoTexto *, ImpressoraLaser * );
extern void EnviaTrabalhoParaImpressora( TrabalhoTexto *, ImpressoraTinta * );
extern void EnviaTrabalhoParaImpressora( TrabalhoHTML *, ImpressoraLaser * );
extern void EnviaTrabalhoParaImpressora( TrabalhoHTML *, ImpressoraTinta * );
Polimorfismo dinâmico
Este é um exemplo de polimorfismo resolvido em tempo de execução de código, representando funções virtuais.
Código:
# include <iostream>
 
class Passaro                       // classe base
{
public:
   virtual void MostraNome()
   {
      std::cout << "um passaro";
   }
   virtual ~Passaro() {}
};
 
class Cisne: public Passaro         // Cisne é um pássaro
{
public:
   void MostraNome()
   {
      std::cout << "um cisne";        // sobrecarrega a função virtual
   }
};
 
int main()
{
   Passaro* passaro = new Cisne;
 
   passaro->MostraNome();            // produz na saída "um cisne", e não "um pássaro"
 
   delete passaro;
}
Utilizando a biblioteca padrão
Este é um exemplo de programa que utiliza elementos da Standard Template Library.
Código:
# include <iostream>   // std::cout
# include <vector>     // std::vector<>
# include <map>        // std::map<> and std::pair<>
# include <algorithm>  // std::for_each()
# include <string>     // std::string
 
using namespace std;  // importa o espaço de nomes "std" ao espaço de nomes global
 
void mostra_quantidade_de_itens(pair< string const, vector<string> > const& pessoa)
{
   // "pessoa" é um par de objetos: pessoa.first é o nome da pessoa,
   // pessoa.second é uma lista dos itens da pessoa (arranjo de cadeias de caracteres)
   cout << pessoa.first << " esta carregando " << pessoa.second.size() << " itens\n";
}
 
int main()
{
   // Declara um mapeamento com chaves de cadeias de caracteres e arranjos de cadeias
   // de caracteres como dado
   map< string, vector<string> > itens;
 
   // Adiciona algumas pessoas no mapeamento e permite que elas carreguem alguns itens
   itens["Anya"].push_back("livro");
   itens["Dimitri"].push_back("computador pessoal");
   itens["Anya"].push_back("casaco");
 
   // Percorre por todos os itens do container
   for_each(itens.begin(), itens.end(), mostra_quantidade_de_itens);
}
Nota-se no exemplo acima a declaração global de quais espaços de nome estão sendo utilizados.
Busca de nomes dependente de argumento
O exemplo clássico de busca de nomes dependente de argumento, também chamada Koenig lookup, é mostrado abaixo:
Código:
namespace NS
{
  class A {};
  void f( A ) {}
}
 m
int main()
{
  NS::A a;
  f( a );    // invoca NS::f
}
Tratamento de exceções
Abaixo é mostrado um exemplo do tratamento de exceções. A divisão de um número por zero não é autorizada por processadores. Como possui uma variável como divisor, a função seguinte divisao_de_dez_por deve primeiramente tratar casos inválidos de entrada. Caso a estrada seja zero, uma exceção será lançada, e o código será redirecionado para o tratamento da exceção (indicado por catch).
Código:
# include <iostream>
 
using namespace std;
 
int divisao_de_dez_por( int divisor )
{
  // prevendo entrada inválida
  if( divisor == 0 )
  {
      throw "divisão por zero";
  }
 
  return 10 / divisor;
}
 
int main()
{
  int div, resultado;
 
  cin >> div; // obtém do usuário um número inteiro
 
  try
  {
      resultado = divisao_de_dez_por( div );
  }
  catch( const char *e )
  { // código será redirecionado para cá caso ( div == 0 )
      resultado = 0; // recuperação do sistema
      cout << "Houve uma exceção: " << e << endl;
  }
}
Manipulação de argumentos da linha de comando
Código:
# include <iostream>  // biblioteca necessária para a função std::cout
 
using namespace std;  // declaração global do espaço de nomes
 
int main( int argc, char *argv[] )
{
  int arg;  // declara uma variável inteiro com o nome arg
 
  // atribui-se 1 a arg; enquanto arg for menor que argc, executa-se o bloco e arg é incrementado em cada iteração
  for( arg = 1; arg < argc; arg++ )
  {
      if( argv[arg][0] != '-' )
      {
        break;
      }
 
      switch( argv[arg][1] )
      {
        case 'r':  // caso possua um r após o hífen
            cout << "Argumento -r usado\n\n"; 
            break;
        case 'v':  // caso possua um v após o hífen
            cout << "Argumento -v usado\n\n";
            break;
        default:    // este é o valor de escape e sua respectiva mensagem:
            cout << "Nenhum argumento foi usado\n\n";
            break;
      }
  }
}
Esses são alguns códigos para vocês iniciantes.


Atenciosamente Equipe WP
Very Happy Very Happy
avatar
MauvadO
Admin
Admin

Mensagens : 23
Data de inscrição : 04/04/2015
Idade : 16

http://worldprogramme.livreforum.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum