Nomes
identifier
qualified-name
operator-function-name
conversion-function-name
~ class-name
template-identifier
template name
qualified-class-name :: template name
Comentários
Qualquer identificador que foi declarado é um nome.Um nome qualificado é um nome composto com o operador de resolução de escopo.Consulte nomes qualificados.
Um nome da função de operador é um nome que é declarado no formulário
operator operator-name**(** argument1**,** argument2**);**
Consulte Operadores sobrecarregados para obter mais informações sobre a declaração do nome da função de operador.
A nome da função de conversão é um nome que é declarado no formulário
operator type-name**(** )
Observação |
---|
Você pode fornecer um nome de tipo derivado, como char * em vez da nome do tipo ao declarar uma função de conversão. |
Funções de conversão de fornecem conversões de e para tipos definidos pelo usuário.Para obter mais informações sobre conversões fornecido pelo usuário, consulte Funções de conversão de.
Um nome declarado como ~nome da classe será interpretado como o "destruidor" objetos de um tipo de classe. Destruidores normalmente executam operações de limpeza no final da vida útil de um objeto.Para obter informações sobre destruidores, consulte destruidores.
Também há várias formas de nomes usados para tipos de modelo e funções do modelo.
Os identificadores de modelo incluem o nome de classe de modelo seguido por colchetes angulares, colocando a lista de argumentos de modelo, que pode incluir tipos e expressões, dependendo de como o modelo foi declarado.Exemplos de modelo identifers são:
A<int> // class A takes a type as a template argument
A<int, char> // class A takes two types as template arguments
A<4> // class A takes an int as a template argument
A<> // class A is a template with a default argument
Os nomes qualificados de funções do modelo podem incluir a palavra-chave do modelo.A palavra-chave do modelo não é permitida em um nome, exceto quando precedidas pelo operador de resolução de escopo, o -> operador, o . operador, ou um nome qualificado.Estes são os nomes de funções:
::template f<int> // f is a global template function
A::template g<100> //g is a template member function of class A
Da mesma forma, o nome de um modelo de classe pode ser especificado usando a palavra-chave do modelo se precedida de resolução de escopo ou qualificados nome.Estes são os nomes dos tipos:
::template A<int> // equivalent to A<int>
Outer::template Inner<int> // equivalent to Outer::Inner<int>
Para obter mais informações sobre modelos, consulte modelos de.