C++
Home

Classes e Const

Funções que retornam valores de classes podem ser definidas como const.
Isso é uma boa pratica de programação e pode ser escrita da seguinte forma:

int getvalor() const;

Exemplo

#include <iostream>

class teste {
private:
   int valor;

public:
   int getvalor() const;
};

int teste::getvalor() const
{
   return valor;
}

int main()
{
   teste e;
   std::cout << e.getvalor();

   std::cin;

   return 0;
}

Objetos também podem ser constantes. Alguns objetos necessitam ser modificáveis, outros não. Você pode usar const para especificar que um objeto não é modificavel.

const Time hora( 12, 0, 0 ); // inicia um objeto constante

Um objeto const não pode ser modifcado, por isso deve ser corretamente iniciado.
Membros privates também podem ser Const. E para modifica-los, usamos o construtor.

#include <iostream>

class add {
public:
   add( int c, int i );
   void imprimir() const;

private:
   int contador;
   const int incrementar; // membro const
};

add::add( int c, int i ) : incrementar( i ) // inicializador para o membro
{
   contador = c;
}

void add::imprimir() const
{
   std::cout << "contador = " << contador << std::endl;
   std::cout << "incrementar = " << incrementar << std::endl;
}

int main()
{
   const add valores( 10, 20 ); // esses valores nunca serao alterados, a classe é const

   valores.imprimir();

   return 0;
}

Nesta linha:
add::add( int c, int i ) : incrementar( i ) // inicializador para o membro

Vemos o inicializador de membro, e membros de classes constantes devem ser inicializados com essa sintaxe.

 

Perguntas??? Email