Partilhar via


Tipo de ponteiro this

O Este tipo do ponteiro pode ser modificado na declaração da função, o const e volatile palavras-chave.Para declarar uma função como tendo os atributos de um ou mais dessas palavras-chave, adicione as palavras-chave após a lista de argumentos de função.

Considere este exemplo:

// type_of_this_pointer1.cpp
class Point
{
    unsigned X() const;
};
int main()
{
}

O código anterior declara uma função de membro, X, no qual o Este ponteiro é tratado como um const ponteiro para uma const objeto.Combinações de VC-mod-list podem ser usadas, mas elas sempre modificar o objeto apontado pelo Este, e não o Este ponteiro propriamente dito.Portanto, a declaração a seguir declara a função X; o Este ponteiro é uma const o ponteiro para um const objeto:

// type_of_this_pointer2.cpp
class Point
{
    unsigned X() const;
};
int main()
{
}

O tipo de Este um membro função é descrita pela seguinte sintaxe, onde VC-qualificador-list é determinada do Declarador de membro de funções e pode ser const ou volátil (ou ambos), e tipo de classe é o nome da classe:

tipo de classe [lista de qualificador cv***constesse**  

Em outras palavras, Este é sempre um ponteiro const; ele não pode ser reatribuído.O const ou volatile qualificadores usados na declaração da função de membro aplicam-se a instância da classe apontada por Este no escopo dessa função.

A tabela a seguir explica mais sobre como esses modificadores funcionam.

Semântica deste modificadores

Modificador

Significado

Const

Não é possível alterar os dados de membro. não é possível invocar funções de membro que não são const.

volatile

Dados de membro são carregados da memória de cada vez que ele é acessado; Desativa determinadas otimizações.

É um erro para passar um const o objeto para uma função de membro que não é const.Da mesma forma, é um erro para passar um volatile o objeto para uma função de membro que não é volatile.

Funções de membro declaradas como const não é possível alterar os dados do membro — em tais funções, o Este ponteiro é um ponteiro para uma const objeto.

ObservaçãoObservação

Construtores e destruidores não podem ser declarados como const ou volatile.No entanto, podem, ser invocado na const ou volatile objetos.

Consulte também

Referência

Esse ponteiro