Assessores e Mutadores em C++

Janeiro 2017


Um dos aspectos mais críticos de programação orientada a objetos é o encapsulamento, que permite a definição de rótulos para os dados e funções membro, para especificar se eles são acessíveis a partir de outras classes, ou não. Como resultado, os dados membro rotulados como Privados não podem ser manipulados diretamente por funções membro de outras classes. Para poder manipular esses dados membro, o criador da classe deve fornecer funções membro especiais, rotuladas como Públicas.

Funções de Assessor e Mutador

Assessores são funções membro que permitem o acesso às funções dos dados membro que permitirão a modificação dos dados membro chamados de Mutadores.

O que é um Assessor

Um Assessor é uma função membro que permite que alguém recupere o conteúdo de um dado membro protegido. Para um assessor executar esta função, ele deve ter as mesmas características que a variável retornada, o assessor não precisa ter argumentos, deve ter uma convenção de nomenclatura, e o nome do assessor deve começar com o prefixo Get. A sintaxe de um assessor reduzida para esta expressão mais simples deve ficar assim:

class MinhaClasse{
privado:
TipoDaMinhaVariável MinhaVariável;

público:
TipoDaMinhaVariável GetMinhaVariável();

};

TipoDaMinhaVariável MinhaClasse:: GetMinhaVariável(){
return MinhaVariável;

}

No exemplo acima, a assessor do dado membro poderia ser o seguinte:

class João{
privado:
int age;

público:
int GetAge();

};

int João::GetAge(){
return age;

}

O que é um Mutador

Um Mutador é uma função membro que permite a edição do conteúdo de um dado membro protegido. Para que o Mutador cumpra a sua função, as seguintes condições devem estar presentes: como um parâmetro, ele deve ter o valor a ser atribuído ao dado membro. O parâmetro deve ser do mesmo tipo que o dado membro. O modificador não precisa retornar um valor. A convenção de nomenclatura deve existir com o nome do assessor começando com o prefixo Set. A sintaxe de um Mutador reduzido para a mais simples expressão deve ficar assim:

class MinhaClasse{
privado:
TipoDaMinhaVariável MinhaVariável;

público:
void SetMinhaVariável(TipoDaMinhaVariável);

};

MinhaClasse::SetMinhaVariável (TipoDaMinhaVariável MeuValor){
MinhaVariável = MeuValor;

}

No exemplo acima, o Mutador do dado membro poderia ser o seguinte:

class João{
privado:
int _age;

público:
void SetAge(int);

};

void João::SetAge(int age){
_age = age;

}

Veja também

Artigo original publicado por . Tradução feita por pintuda. Última modificação: 3 de maio de 2016 às 11:31 por ninha25.
Este documento, intitulado 'Assessores e Mutadores em C++', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.