Exemplo 1: Programa de uma função de membro Const em C++
Aqui, temos um programa simples da função membro const:
#includeusando espaço para nome padrão ;
aula Minha classe {
interno num ;
público :
Minha classe ( interno n = 0 ) {
num = n ;
}
interno Obter valor ( ) const {
retornar num ;
}
} ;
interno principal ( ) {
const MinhaClasse c ( 30 ) ;
MinhaClasse c1 ( 5 ) ;
corte << 'Número usando objeto c:' << c. Obter valor ( ) ;
corte << ' \n Número usando o objeto c1: ' << c1. Obter valor ( ) ;
retornar 0 ;
}
Inicialmente, definimos o arquivo de cabeçalho que habilita os fluxos de entrada/saída do programa. Em seguida, definimos a classe “MyClass” onde declaramos uma variável “num” e as funções membro da função MyClass() e da função getVal(). Dentro da função MyClass(), definimos o parâmetro “n” com o valor “0”. Então, o argumento “n” é atribuído à variável “num”. A seguir, chamamos a função getVal() com a palavra-chave “const”, indicando que o estado atual do objeto não pode ser modificado em uma chamada de função. A função getVal() retorna a variável de membro “num”.
Finalmente, chegamos à função main(). Aqui definimos os objetos “c” e “c1” da função MyClass() e também passamos os valores para esses objetos. O objeto “c” é definido com a palavra-chave “const”, indicando que o valor atribuído a este objeto não pode ser modificado.
A saída da função membro const chamada pelo objeto é mostrada a seguir. Desta forma, podemos usar a palavra-chave “const” com a função membro e o objeto:
Exemplo 2: Programa de uma função de membro Const fora da classe em C++
Agora, temos outra implementação onde a função de membro const é definida fora de uma definição de classe e define e recupera um valor de variável de membro privado usando uma função de membro const.
#includeusando espaço para nome padrão ;
aula Nova classe {
interno eu ;
público :
vazio set_record ( interno ) ;
interno get_record ( ) const ;
} ;
vazio Nova classe :: set_record ( interno x ) { eu = x ; }
interno Nova classe :: get_record ( ) const { retornar eu ; }
interno principal ( )
{
NovaClasse c ;
c. set_record ( 10 ) ;
corte << c. get_record ( ) ;
retornar 0 ;
}
Aqui, primeiro estabelecemos uma classe, “NewClass”, onde inicializamos a variável “i” que é mantida privada. Depois disso, temos uma palavra-chave pública onde as funções membro set_record() e get_record() são definidas. A função membro set_record() é usada para definir o valor da variável “i” e a função get_record() é usada aqui para retornar o valor da variável “i”. Observe que usamos a palavra-chave “const” com a função membro get_record() que a representa como uma função membro const, e o estado do objeto não pode ser modificado. Depois disso, temos uma definição de função set_record() para definir o valor da variável “i”.
Da mesma forma, temos a definição da função get_record() para recuperar o valor da variável “i”. Em seguida, configuramos a função main() onde temos uma declaração do objeto “c” da classe “NewClass”. Então, o “set_record”, uma função membro não const, é chamado para atribuir um valor à variável “z”. Continuando, chamamos a função membro get_record() const para imprimir o valor de “i”.
O valor da variável de membro privado é chamado pela função de membro const e é mostrado no seguinte prompt:
Exemplo 3: Programa de uma função de membro Const definida fora da classe como uma função independente
No entanto, implementamos outro caso de função-membro const onde a função-membro com a palavra-chave “const” é chamada fora da classe como uma função independente.
#incluirusando espaço para nome padrão ;
aula Equação {
interno n1,n2 ;
público :
vazio conjunto_equação ( interno x, interno e )
{
n1 = x ;
n2 = e ;
}
vazio mostrar_equação ( )
{
corte << 'A equação é:' << n1 << '+' << n2 << 'b' << fim ;
}
amigo vazio é divertido ( const Equação ) ;
} ;
vazio é divertido ( const Equação objeto )
{
corte << 'A equação que usa a função é:' << obg. n1 << '+' << obg. n2 << 'b' << fim ;
}
interno principal ( )
{
Equação objeto ;
obg. conjunto_equação ( 5 , 8 ) ;
obg. mostrar_equação ( ) ;
é divertido ( obj ) ;
}
Aqui, criamos a classe “Equation()” e depois declaramos as variáveis “n1” e “n2”. Aqui, também adicionamos a função membro set_Equation() para definir os valores das variáveis “n1” e “n2”. A função show_Equation() mostra a equação gerada usando essas variáveis.
Depois disso, temos uma declaração de função funIs() que é definida usando a palavra-chave “friend”. Esta palavra-chave “amigo” nos permite acessar o membro privado da classe “Equação”. A seguir, chamamos a função amiga “funIs()” fora da classe e inserimos o parâmetro “obj” da classe “Equation” como const. Ao final, temos uma função main() onde declaramos o objeto da classe “Equação”. Em seguida, definimos os valores das variáveis “n1” e “n2” usando a função set_Equation(). As variáveis “n1” e “n2” são usadas para exibir seus valores usando a função show_Equation(). Por último, chamamos a função amiga “funIs” da classe “Equation” para exibir a equação.
A equação e a equação usando a função const amigo são exibidas no prompt:
Exemplo 4: Programa de uma função de membro Const para atualizar o valor em C++ (pior caso)
O programa demonstra o pior cenário da função membro const onde tentamos modificar o valor da variável chamada “dentro da função membro const”.
#includeusando espaço para nome padrão ;
aula Dados {
interno em ;
público :
vazio definirValor ( interno eu ) { em = eu ; }
interno Obter valor ( ) const
{
++ em ;
retornar em ;
}
} ;
interno principal ( )
{
Dados d ;
d. definirValor ( vinte ) ;
corte << fim << d. Obter valor ( ) ;
retornar 0 ;
}
Aqui, primeiro construímos a classe “Data” e declaramos a variável “v” dentro da classe. Depois disso, definimos a palavra-chave “public” e então declaramos as funções de membro da classe “setValue()” que representa o construtor da classe e getValue() que indica a função de membro getter da classe. A função setValue() leva a variável “i” como parâmetro. Esta variável “i” é atribuída à variável membro “v”.
Depois disso, temos a definição da função getValue() onde recuperamos o valor da variável “v”. Já a função getValue() é declarada com a palavra-chave “const”, representando que o valor da variável “v” não pode ser atualizado em nenhum caso. No entanto, tentamos intencionalmente incrementar a variável “v” para alterar seu valor. Quando o programa atinge este estágio, um erro é gerado. Por último, temos a chamada da função main() onde definimos o objeto “d” da classe “Data” e definimos o valor “20” para este objeto “d”. Depois disso, chamamos a função getValue() para obter o valor “d” do objeto.
O prompt gera os resultados da implementação anterior onde apresenta um erro em “++v” porque não temos permissão para modificar o valor dos objetos da função membro const:
Conclusão
Concluindo, mergulhamos na função const do C++ que é usada para evitar alterações acidentais no valor do programa. As funções-membro const em C++ são funções somente leitura cuja modificação dos objetos nos quais são chamadas não é permitida. Também implementamos vários cenários da função const para demonstrar sua funcionalidade em C++.