English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C++ Sobrecarga de Operador e Função Sobrecarregada
O operador de chamada de função () pode ser sobrecarregado para objetos de classe. Quando sobrecarregar (), você não cria um novo método de chamada de função, em vez disso, cria um operador de função que pode passar qualquer número de argumentos.
O exemplo a seguir demonstra como sobrecarregar o operador de chamada de função ()。
#include <iostream> using namespace std; class Distance { private: int feet; // 0 até infinito int inches; // 0 até 12 public: // Construtores necessários Distance(){ feet = 0; inches = 0; } Distance(int f, int i){ feet = f; inches = i; } // Sobrecarga do operador de chamada de função Distance operator()(int a, int b, int c) { Distance D; // Realizar cálculos aleatórios D.feet = a + c + 10; D.inches = b + c + 100; return D; } // Método de exibição de distância void displayDistance() { cout << "F: " << feet << " I:" << inches << endl; } }; int main() { Distância D1(11, 10), D2; cout << "Primeira Distância : "; D1.displayDistance(); D2 = D1(10, 10, 10); // invoke operator() cout << "Segunda Distância :"; D2.displayDistance(); return 0; }
Quando o código acima for compilado e executado, ele produzirá o seguinte resultado:
Primeira Distância : F: 11 I:10 Segunda Distância :F: 30 I:120