Funções de membro especial (C++)
C++ define vários tipos de funções que podem ser declarados apenas como membros de classe — esses são chamados de "funções de membro especial". Essas funções afetam o modo de objetos de uma determinada classe são criados, destruídos, copiados e convertidos em objetos de outros tipos.Outra propriedade importante de muitas dessas funções é o que pode ser chamados implicitamente (pelo compilador).
As funções de membro especial descritas nesta seção são:
Construtores.Habilite a inicialização automática de objetos.
Destruidores.Execute a limpeza após os objetos são destruídos de explícita ou implicitamente.
Funções de conversão de.Converta entre tipos de classes e outros tipos.
nova função de operador.Aloca dinamicamente o armazenamento.
operador excluir a função.Libera o armazenamento alocado usando o nova operador.
Operador de atribuição (operador =).Usado quando uma atribuição ocorre.
Os itens da lista anterior podem ser definida pelo usuário para cada classe.
Funções de membro especial obedecem às mesmas regras de acesso que outras funções de membro.As regras de acesso são descritas na O controle de acesso de membro.A tabela a seguir resume como as funções de membro e amigo se comportam.
Resumo do comportamento de função
Tipo de função |
Função é herdada da classe Base? |
Função pode ser Virtual? |
Função pode retornar a um valor? |
É função de um membro ou um amigo? |
Compilador gera função se o usuário não faz? |
---|---|---|---|---|---|
Construtor |
Não |
Não |
Não |
Membro |
Sim |
Construtor de cópia |
Não |
Não |
Não |
Membro |
Sim |
Destruidor |
Não |
Sim |
Não |
Membro |
Sim |
Conversão |
Sim |
Sim |
Não |
Membro |
Não |
Atribuição (operator=) |
Não |
Sim |
Sim |
Membro |
Sim |
Novo |
Sim |
Não |
void * |
Membro estático |
Não |
Excluir |
Sim |
Não |
void |
Membro estático |
Não |
Outras funções de membro |
Sim |
Sim |
Sim |
Membro |
Não |
Funções de amigo |
Não |
Não |
Sim |
Friend |
Não |