Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: C++ ::: Topografia e Geoprocessamento ::: Passos Iniciais

Como converter Rumo em Azimute em C++ - C++ para Topografia e Engenharia Civil

Quantidade de visualizações: 866 vezes
É muito comum, nos códigos que estamos escrevendo para cálculos de Topografia e Engenharia Civil, termos que lidar com conversões de Rumo para Azimute e vice-versa.

A palavra azimute, de origem árabe, significa "as direções", e é sempre determinado no sentido horário. Muito utilizado na Topografia, em levantamentos topográficos, o azimute é o ângulo entre o norte magnético, e um ponto levantado, ou entre o norte e um lado de um determinado polígono. Seu valor varia de 0º a 360º. Não esqueça, sempre partindo do norte.

O Rumo, por sua vez, é o menor ângulo formado pelo alinhamento norte sul e a direção considerada. Seu valor varia de 0º a 90º e é obtido a partir do norte ou do sul por leste e oeste.

Como o rumo expressa o ângulo sempre em função do quadrante em que ele se encontra, temos que acrescentar as siglas NE, SE, SW, NW. A primeira letra indica a origem a partir da qual a contagem é realizada e a segunda letra indica a direção do giro ou quadrante. Dessa forma, valores em rumo quase sempre vêm descritos como graus, minutos e segundos, variando de 0º a 90º e precedidos ou antecedidos pelas siglas discutidas acima.

Veja na figura a seguir uma exemplicação de azimute e rumo:



Veja agora o código C++ completo que pede para o usuário informar a direção em rumo e mostra a direção correspondente em azimute:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>
#include <string>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  float rumo, azimute;
  string sigla;
	
  // vamos pedir para o usuário informar o valor do rumo
  cout << "Informe o valor do rumo: ";
  cin >> rumo;
  
  // agora vamos pedir a sigla
  cout << "Informe a sigla [NE, SE, SW, NW]: ";
  cin >> sigla;
    
  if(sigla == "NE"){
    // estamos no primeiro quadrante: 0º a 90º
    azimute = rumo;
  }
  else if(sigla == "SE"){
    // estamos no segundo quadrante: 90º1' a 180º
    azimute = 180 - rumo;
  }
  else if(sigla == "SW"){
    // estamos no terceiro quadrante: 180º1' a 270º
    azimute = 180 + rumo;
  }
  else if(sigla == "NW"){
    // estamos no quarto quadrante: 270º1' a 360º
    azimute = 360 - rumo;
  }
    
  // mostramos o resultado
  cout << "O azimute para o rumo informado é: " <<
    azimute << endl;   
  
  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Informe o valor do rumo: 35
Informe a sigla [NE, SE, SW, NW]: SE
O azimute para o rumo informado é: 145.0

Note que o nosso código C++ está considerando apenas os graus, ou seja, não incluímos os minutos e segundos. Em outras dicas do site eu mostro como converter graus, minutos e segundos em graus decimais antes de efetuar os cálculos.

Link para compartilhar na Internet ou com seus amigos:

C++ ::: Desafios e Lista de Exercícios Resolvidos ::: STL Vector C++

Exercícios Resolvidos de C++ - Escreva um programa C++ que retorna os elementos em um vector que são estritamente menores que seus vizinhos adjacentes da esquerda e da direita

Quantidade de visualizações: 36 vezes
Pergunta/Tarefa:

Escreva um programa C++ que retorna os elementos em um vector que são estritamente menores que seus vizinhos adjacentes da esquerda e da direita. Seu código deverá pedir para o usuário informar 10 valores inteiros, guardá-los em um vector e então calcular e exibir o resultado.

Sua saída deverá ser parecida com:

Informe o 1.o valor: 8
Informe o 2.o valor: 4
Informe o 3.o valor: 9
Informe o 4.o valor: 3
Informe o 5.o valor: 1
Informe o 6.o valor: 6
Informe o 7.o valor: 2
Informe o 8.o valor: 7
Informe o 9.o valor: 3
Informe o 10.o valor: 8

Conteúdo do vector: 8  4  9  3  1  6  2  7  3  8

Os elementos menores que seus vizinhos adjascentes são:

4  1  2  3
Resposta/Solução:

Veja a resolução comentada deste exercício usando C++:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

// vamos fazer os includes ncessários
#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

// função para encontrar os elementos no vector que são menores
// que seus vizinhos adjacentes
vector<int> verificar(vector<int> valores) {
  // vamos inicializar um vector vazio para guardar os elementos
  // que passarem na condição
  vector<int> temp;
    
  // vamos percorrer o vector recebido como argumento
  for(int i = 1; i < valores.size() - 1; i++) {
    // o elemento atual é menor que o elemento anterior e posterior a ele?
    if(valores[i] < valores[i - 1] && valores[i] < valores[i + 1]) {
      // vamos adicionar no vector temporário
      temp.push_back(valores[i]);
    }
  }
    
  // retornamos o vector temporário
  return temp;
}
 
// função principal do programa
int main(int argc, char *argv[]) {
  // vamos criar o vector que guardará os valores informados
  // pelo usuário
  vector<int> numeros;
  int valor;

  // vamos ler 10 números inteiros
  for (int i = 0; i < 10; i++) {
    cout << "Informe o " << (i + 1) << ".o valor: ";
    cin >> valor;
    numeros.push_back(valor);
  }

  // vamos mostrar o conteúdo do vector original
  cout << "\nConteúdo do vector: ";
  for (int n: numeros) {
    cout << n << "  ";
  }
 
  // agora vamos testar os números que são menores que seus
  // vizinhos adjascentes
  vector<int> resultado = verificar(numeros);
  cout << "\n\nOs elementos menores que seus vizinhos adjascentes são:\n\n";   
  for (int n: resultado) {
    cout << n << "  ";
  }
 
  cout << "\n\n";
  return EXIT_SUCCESS;
}



C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Vetores e matrizes em C++ - Como passar vetores e matrizes para as suas funções C++

Quantidade de visualizações: 12110 vezes
Muitas vezes precisamos passar um vetor ou uma matriz C++ para nossas funções. O trecho de código abaixo mostra como isso é feito. Observe que a passagem de uma matriz para uma função é feita por referência, ou seja, qualquer alteração nos valores da matriz dentro do método será refletida na matriz original:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>
 
using namespace std;
 
// função usada para exibir os valores
// da matriz
void exibir_matriz(int matriz[], int quant)
{
  for(int i = 0; i < quant; i++){
    cout << matriz[i] << endl;
  }
}
 
int main(int argc, char *argv[])
{
  // cria uma matriz com 5 inteiros
  int valores[] = {54, 3, 89, 6, 1};
 
  // passa a matriz para a função exibir_matriz()
  // veja que temos que enviar também a quantidade
  // de elementos
  exibir_matriz(valores, 5);
 
  system("PAUSE"); // pausa o programa
  return 0;
}

Ao executar este código C++ nós teremos o seguinte resultado:

54
3
89
6
1


C++ ::: Dicas & Truques ::: Programação Orientada a Objetos

Como criar uma classe C++ completa, incluindo os arquivos de definição .h e implementação .cpp

Quantidade de visualizações: 28043 vezes
Esta dica o guiará passo-a-passo na criação de uma classe C++, incluindo os arquivos .h e .cpp. Para isso vamos usar o Dev-C++ (acreditamos que o procedimento é parecido com outros compiladores).

Vamos começar com o arquivo de definição. Com um projeto já iniciado no Dev-C++, vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes.

Salve o arquivo com o nome de "pessoa.h" e inclua nele o seguinte código:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

/*
  Código de definição: pessoa.h
*/

#ifndef PESSOA_H
#define PESSOA_H

#include <string>
using std::string;

class Pessoa{
  public:
    void setNome(string nome);
    void setIdade(int idade);
    string getNome();
    int getIdade();
  private:
    string nome;
    int idade;
};

#endif

Salve este código como pessoa.h no diretório de sua aplicação C++. Este é o arquivo de definição da classe. É nele que declaramos os membros públicos e privados, incluindo as assinaturas dos métodos da classe. Passemos agora ao arquivo de implementação. Novamente vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes. Salve o novo arquivo como "pessoa.cpp" e inclua nele o seguinte conteúdo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

/*
  Código de implementação: pessoa.cpp
*/

#include "pessoa.h"

void Pessoa::setNome(string nome){
  this->nome = nome;
}

void Pessoa::setIdade(int idade){
  this->idade = idade;
}

string Pessoa::getNome(){
  return this->nome;
}

int Pessoa::getIdade(){
  return this->idade;
}

Salve este código como pessoa.cpp no diretório de sua aplicação C++. Este é o arquivo de implementação dos métodos da classe Pessoa. Veja o uso da palavra-chave this quando queremos referenciar o objeto atual da classe e, é claro, evitar ambiguidade entre o nome das variáveis da classe e os nomes dos parâmetros dos métodos.

Hora de testar. Crie o arquivo principal da aplicação (aquele que contém o método main()):

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>
#include "pessoa.h"

using namespace std;

int main(int argc, char *argv[])
{
  // declara um objeto da classe Pessoa
  Pessoa p;

  // informa o nome e idade da pessoa
  p.setNome("Osmar J. Silva");
  p.setIdade(27);

  // obtém o nome e idade da pessoa
  cout << "Nome: " << p.getNome() << endl;
  cout << "Idade: " << p.getIdade() << endl;

  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Funcionou tudo como planejado? Se funcionou, parabéns! Já fizemos um bom progresso na criação e uso de classes em C++.


C++ ::: STL (Standard Template Library) ::: Vector C++

Como retornar a quantidade de elementos em um vector do C++ usando a função size()

Quantidade de visualizações: 7185 vezes
Em algumas situações nós precisamos obter o tamanho, ou seja, a quantidade de elementos contidos em um container vector da STL (Standard Template Library). Isso pode ser feito por meio da função-membro size(). Veja sua assinatura:

size_type size() const;


Aqui size_type é um tipo integral sem sinal. Veja um exemplo no qual obtemos a quantidade de elementos atualmente no vector:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos obter a quantidade de elementos no vector
  int quant = valores.size();

  // exibe o resultado
  cout << "O vector contém " << quant << " elementos." << endl;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

O vector contém 3 elementos.

Note que o número de elementos em um vector é diferente de sua capacidade. Um vector pode ter uma capacidade de 10 elementos mas conter apenas 3 elementos no momento. A capacidade de um vector é aumentado automaticamente à medida que novos elementos são adicionados.


C++ ::: STL (Standard Template Library) ::: Vector C++

Como retornar uma referência ao primeiro elemento de um vector C++ usando a função front()

Quantidade de visualizações: 6644 vezes
O primeiro elemento em um contêiner STL vector do C++ pode ser acessado por meio da função front(). Como esta função é sobrecarregada, temos duas opções:

reference front();
const_reference front() const;  
A primeira versão é do tipo T&, ou seja, retorna uma referência ao primeiro elemento. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos obter o valor do primeiro elemento do vector
  // Note que front() pode ser usada dos dois lados
  // de uma operação de atribuição
  int valor = valores.front();
  cout << "Primeiro elemento: " << valor << endl;

  // vamos alterar o valor do primeiro elemento
  valores.front() = 102;

  // vamos testar o resultado
  cout << "Primeiro elemento: " << valores.front() << endl;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Note que aqui nós usamos:

int valor = valores.front();
para guardar o valor do primeiro elemento na variável valor. Poderíamos também usar:

int& valor = valores.front();
valor = 102;
Agora valor é uma referência direta ao primeiro elemento do vector. Desta forma, qualquer alteração no valor da variável valor afetará também o primeiro elemento do vector.

Observe agora o seguinte trecho de código:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

int valor = valores.front(); // o primeiro elemento é 54
valores.front() = 20;
cout << "Primeiro elemento: " << valor << endl;

Aqui nós acessamos o valor do primeiro elemento, guardarmos-o na variável valor e atribuímos o valor 20 à valores.front(). Porém, ao imprimirmos a variável valor o seu conteúdo ainda é 54. De fato, o que gostaríamos é que uma alteração em valores.front() afetasse também a variável valor. Assim:

int& valor = valores.front(); // o primeiro elemento é 54
valores.front() = 20;
cout << "Primeiro elemento: " << valor << endl;
Mas, como evitar alterações diretas na variável valor? Podemos declarar valor como uma referência constante, ou seja, usar a segunda versão da função front(), a saber const T&, que retorna uma referência constante. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

const int& valor = valores.front(); // o primeiro elemento é 54
valores.front() = 20;
valor = 300; // esta linha não compila
cout << "Primeiro elemento: " << valor << endl;

Agora o efeito que queríamos é alcançado. Alterações em valores.front() afetam a variável valor, mas, não podemos alterar valor diretamente, já que esta variável é uma referência constante agora.


C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercício Resolvido de C++ - Um método recursivo que conta de 0 até 10

Quantidade de visualizações: 919 vezes
Pergunta/Tarefa:

Escreva um método recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura:

void contar_recursivamente(int n){
  // sua implementação aqui
}
Veja que o método deverá receber o valor 0 e efetuar novas chamadas a si mesmo até que os valores de 0 a 10 sejam exibidos. O ponto de parada da recursividade é a exibição do valor 10.

Sua saída deverá ser parecida com:

0  1  2  3  4  5  6  7  8  9  10
Resposta/Solução:

Veja a resolução comentada deste exercício usando C++:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>
#include <cstdlib>
   
using namespace std;

// método recursivo que conta de 0 até 10;
void contar_recursivamente(int n){
  // vamos exibir o número atual
  cout << n << " ";
    
  // devemos prosseguir com a recursividade?
  if(n < 10){
    // incrementa o valor de n
    n++;  
    contar_recursivamente(n); // e faz uma nova chamada recursiva
  }
}  
   
// função principal do programa   
int main(int argc, char *argv[]){
  // efetua uma chamada ao método recursivo fornecendo o primeiro valor
  contar_recursivamente(0); 
       
  cout << "\n\n";     
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}



C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como ordenar os elementos de vetor C++ usando a Ordenação da Bolha (Bubble Sort) - Revisado

Quantidade de visualizações: 15486 vezes
O método ou algorítmo de ordenação da bolha é uma das técnicas mais simples de ordenação. No entanto, este método não é eficiente, visto que o tempo despendido para sua execução é muito elevado se comparado à outros métodos existentes. Geralmente usamos este método quando queremos ordenar 50 elementos ou menos.

O entendimento deste método é fácil. Se estivermos ordenando os valores do menor para o maior, o método da bolha percorre os elementos da matriz, comparando e movendo o menor valor para a primeira posição do vetor (array), tal qual bolhas indo para a superfície. Veja um exemplo completo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>
 
using namespace std;
 
void bubble_sort(int matriz[], int tam){
  int temp, i, j;
 
  for(i = 0; i < tam; i++){
    for(j = 0; j < tam; j++){
      if(matriz[i] < matriz[j]){
        temp = matriz[i];
        matriz[i] = matriz[j];
        matriz[j] = temp;
      }
    }
  }
}
 
int main(int argc, char *argv[])
{
  int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
  int const quant_elem = 9;
 
  // imprime a matriz sem a ordenação
  for(int i = 0; i < quant_elem; i++){
    cout << valores[i] << "  ";
  }
 
  // vamos ordenar a matriz
  bubble_sort(valores, quant_elem);
 
  // imprime a matriz ordenada
  cout << endl;
  for(int i = 0; i < 9; i++){
    cout << valores[i] << "  ";
  }
 
  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executarmos este código nós teremos o seguinte resultado:

4 6 2 8 1 9 3 0 11
0 1 2 3 4 6 8 9 11

Pressione qualquer tecla para continuar...


C++ ::: Dicas & Truques ::: Ponteiros, Referências e Memória

Como alocar memória dinâmica usando o operador new do C++

Quantidade de visualizações: 12279 vezes
Em algumas situações precisamos alocar memória dinamicamente. Em C++ isso é feito com o auxílio do operador new. Este operador permite alocar uma determinada quantidade de bytes, alinhados de forma a representar o objeto para o qual queremos reservar memória.

Veja um exemplo de código no qual alocamos memória dinâmica para uma variável do tipo int:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // aloca memória para um objeto do tipo int
  int *ponteiro = new int;

  // vamos definir o valor para o objeto recém-alocado
  *ponteiro = 20;

  // vamos exibir seu valor
  cout << *ponteiro << endl;

  // vamos liberar a memória
  delete ponteiro;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Note que aqui a memória foi alocada e guardada em um ponteiro. Veja também o uso do operador delete para liberar a memória alocada. Isso evita os vazamentos de memória tão frequentes em aplicações que lidam com a memória dinâmica.

É claro que este não é o exemplo mais prático. Qual a vantagem de se alocar memória para um int? Declarar uma variável teria sido mais eficiente.

A alocação de memória dinâmica é mais útil quando estamos lidando com objetos mais complexos que os tipos básicos. Alguns exemplos envolvem a criação de objetos de classes, matrizes, estruturas de dados, etc.

Veja um exemplo no qual temos uma declaração de uma classe chamada Cliente e em seguida alocamos memória para uma instância desta classe:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>
#include <string>

using namespace std;

// declaração da classe Cliente
class Cliente{
  public:
    Cliente();
    string obterNome();
    void definirNome(string);
  private:
    string nome;
};

// implementação dos métodos da classe
Cliente::Cliente(){} // construtor vazio

// obtém o nome do cliente
string Cliente::obterNome(){
  return this->nome;
}

// define o nome do cliente
void Cliente::definirNome(string nome){
  this->nome = nome;
}

int main(int argc, char *argv[]){
  // aloca memória para um objeto da classe Cliente
  Cliente *c = new Cliente();

  // vamos definir o nome do cliente
  c->definirNome("Osmar J. Silva");

  // vamos exibir o nome do cliente
  cout << c->obterNome() << endl;

  // vamos liberar a memória usada
  delete c;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Nome do cliente: Osmar J. Silva


Desafios, Exercícios e Algoritmos Resolvidos de C++

Veja mais Dicas e truques de C++

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 31 usuários muito felizes estudando em nosso site.