Original Discussion -> [Cviet]
Code Relax #3 [ by rox_rook ]
- Write a class that allows operator overloading as long as possible and no syntax error.
Example, the following expression must be evaluated:
+++++++++++++++++++++++++++++++x; // must be valid and evaluated- Language in use: C++
Solution [ by me ]
#include <iostream> using namespace std; template< typename X > class MyOperator { private: X value; public: MyOperator( X _value = 0 ) : value(_value) { }; MyOperator& operator+() { ++value; } MyOperator& operator++() { ++value; } X getValue() const { return value; } }; int main( ) { MyOperator<int> x(7); ++++++++++++++++++++++++++++++++++x; cout << x.getValue() << endl; MyOperator<double> j(1.4); +++++++++++++++j; cout << j.getValue() << endl; return 0; }
Evaluation
- The keyword 'operator' in C++ can be use to make cool things. I just found out about this 'til today testing it.