Como usar o ponteiro "este" em c ++

Em um programa C ++, se você criar o objeto a da classe X, então você pode obter o endereço de uma usando o "esta" ponteiro. O endereço está disponível como uma variável local nas funções de membro não-estático de X, e seu tipo é const X *. o "esta" ponteiro funciona porque C ++ cria instâncias de seus membros de dados, e mantém uma cópia de cada função de membro.

Coisas que você precisa

  • habilidade avançada C ++
  • C ++ compilador com IDE, como Visual Studio 2008

instruções

  1. Use o "esta" ponteiro para descobrir a localização de uma instância de classe. Como qualquer ponteiro, ele armazena um endereço. função de membro GetAddress () da classe C ++ X devolve o endereço de uma determinada instância da classe X:

    class X {

    público:

    const X * const GetAddress () {

    voltar this-

    } -



  2. funções de membro de acesso ou dados membro dentro de uma função membro da classe com o "esta" a palavra-chave e "-gt;" operador. O exemplo abaixo pode trabalhar sem "este-gt ;." Mas se a biblioteca matriz tem uma classe pai com os mesmos nomes de membros, "este gt;" deixa claro que o que é chamado pertence à classe atual, e não seu pai:

    classe Matrix {

    linhas int, cols-

    público:

    Matrix (): linhas (0), cols (0) {

    this-gt; Init () -

    }

    ~ Matriz () -

    int GetRows () const {

    devolver este-gt; rows-

    }

    privado:

    vazio Init () -

    } -

  3. Estudar uma classe que tem a sobrecarga de operador e estudar o uso desta. O seguinte trecho de código demonstra como ele pode ser redefinido:

    const X * this-gt; operator () {

    voltar this-

    }

dicas & avisos

  • Manter essas regras em mente quando se trabalha com um ponteiro: não tente mudar endereços- eles são unmodifiable- não incluem endereços sempre que o tamanho de um objeto é calculated- você não pode acessar um endereço de funções de membro estático.

recursos

De esta maneira? Compartilhar em redes sociais:

LiveInternet