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.