Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Funções de membro de classe são tratadas de forma diferente, dependendo se elas são declaradas como static.Porque as funções não estática tem um argumento implícito que fornece a this funções não estática do ponteiro, são consideradas para ter um argumento mais que funções estáticas; Caso contrário, eles são declarados idêntico.
Essas funções de membro não estático exigem que o implícitas this ponteiro coincide com o tipo de objeto através do qual a função é chamada, ou para operadores sobrecarregados, exigem que o primeiro argumento corresponder ao objeto no qual o operador está sendo aplicado.(Para obter mais informações sobre operadores sobrecarregados, consulte Operadores sobrecarregados.)
Ao contrário de outros argumentos em funções sobrecarregadas, não há objetos temporários são introduzidos e não há conversões são tentadas quando se assemelhar a this argumento do ponteiro.
Quando o – > -seleção de membro é usado para acessar uma função de membro, o this tem o argumento do ponteiro de tipo de class-name* const. If the members are declared as const or volatile, the types are const class-name* const and volatile class-name * const, respectively.
O . o operador de seleção de membro funciona exatamente da mesma forma, exceto que um implícito & (endereço de entrada) do operador é prefixado ao nome do objeto.O exemplo a seguir mostra como isso funciona:
// Expression encountered in code
obj.name
// How the compiler treats it
(&obj)->name
O operando esquerdo da –>* e .* operadores (ponteiro para o membro) são tratados da mesma maneira que o . e –> operadores (seleção de membro) em relação ao argumento de correspondência.