operators
Da cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Índice |
[editar] Sobrecarga de operador
[editar] Sintaxe
type operator op ( params ) ;
|
|||||||||
[editar] Explicação
- <type> é / são o (s) das variáveis .Original:<type> is/are the type(s) of the variables.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - <op> é o operador particular (por exemplo
+
,+=
,<<
,>>
,&&
,||
,%
, etc).Original:<op> is the particular operator (e.g.+
,+=
,<<
,>>
,&&
,||
,%
, etc.).The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - <params> é / são o (s) nome dos parâmetros necessários (depende da operadora).Original:<params> is/are the name(s) of the required parameters (depends on the operator).The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
[editar] Restrições
- Você não pode criar novos operadores, como
**
ou&|
.Original:You cannot create new operators such as**
or&|
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - Nem todos os operadores podem ser sobrecarregadosOriginal:Not all operators can be overloadedThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - Algumas operadoras só pode ser sobrecarregado como membros não-estáticos da classeOriginal:Some operators can only be overloaded as non-static class membersThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. - Avaliação curto-circuito não funciona com operadores sobrecarregadosOriginal:Short-circuit evaluation doesn't work with overloaded operatorsThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
[editar] Convida operador
Operadores sobrecarregados podem ser chamadas usando a notação infixa habitual
Original:
Overloaded operators can be called using the usual infix notation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
a+b
ou uma função semelhante a notação
Original:
or a function-like notation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
operator+(a,b)
[editar] Exemplo
#include <iostream> using namespace std; class Fraction{ private: int numerator, denominator; public: Fraction(int n, int d): numerator(n), denominator(d) {} // Note that the keyword operator combined with an actual // operator is used as the function name friend ostream& operator<<(ostream&, Fraction&); }; ostream& operator<<(ostream& out, Fraction& f){ out << f.numerator << '/' << f.denominator; return out; } int main(){ Fraction f1(3, 8); Fraction f2(1, 2); cout << f1 << endl; cout << 3 << ' ' << f2 << endl; return 0; }
Saída:
3/8 3 1/2
[editar] Consulte também
Common operators | ||||||
---|---|---|---|---|---|---|
atribuição | incrementNJdecrement | aritmética | lógico | comparação | memberNJaccess | outro |
a = b |
++a |
+a |
!a |
a == b |
a[b] |
a(...) |
Special operators | ||||||
static_cast converte um tipo para outro
tipo compatível Original: static_cast converts one type to another compatible type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. dynamic_cast converte classe base virtual para class
derivados Original: dynamic_cast converts virtual base class to derived class The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. const_cast converte tipo para tipo compatível com diferentes cv qualifiers
Original: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. reinterpret_cast converte tipo de type
incompatíveis Original: reinterpret_cast converts type to incompatible type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. new aloca memory
Original: new allocates memory The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. delete desaloca memory
Original: delete deallocates memory The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. sizeof consulta o tamanho de um type
Original: sizeof queries the size of a type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. sizeof... consulta o tamanho de um bloco de parâmetros (a partir do C++ 11)
Original: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. typeid consulta o tipo de informação de uma type
Original: typeid queries the type information of a type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. noexcept verifica se uma expressão pode lançar uma (a partir do C++ 11)
exceção Original: The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. alignof consultas exigências de alinhamento de um (a partir do C++ 11) tipo
Original: alignof queries alignment requirements of a type (a partir do C++ 11) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |