// Programa clas24.cpp de exemplo para ilustrar conceitos de // sobrecarga de operador // Original do livro TURBO C++ SCHILDT pg 414 #include class tres_d { int x, y, z; // coordenadas 3-d public: tres_d operator+(tres_d t); tres_d operator=(tres_d t); void mostra(void); void atribui(int mx, int my, int mz); }; // sobrecarrega o + tres_d tres_d::operator+(tres_d t) { tres_d temp; temp.x = x + t.x; temp.y = y + t.y; temp.z = z + t.z; return temp; } // sobrecarrega o = tres_d tres_d::operator=(tres_d t) { x = t.x; y = t.y; z = t.z; return *this; } // mostra as coordenadas X, Y, Z void tres_d::mostra(void) { cout << x << ", "; cout << y << ", "; cout << z << "\n"; } // atribui coordenadas void tres_d::atribui(int mx, int my, int mz) { x = mx; y = my; z = mz; } main(void) { tres_d a, b, c; a.atribui(1, 2, 3); b.atribui(10, 10, 10); a.mostra(); b.mostra(); c = a + b; // adiciona a e b c.mostra(); c = a + b + c; // adiciona a, b e c c.mostra(); c = b = a; // atribuicao multipla c.mostra(); b.mostra(); return 0; } // resultado // 1, 2, 3 // 10, 10, 10 // 11, 12, 13 // 22, 24, 26 // 1, 2, 3 // 1, 2, 3