What is the "operator int" function below? What does it do?
class INT{ int a;public: INT(int ix = 0) { a = ix; } /* Starting here: */ operator int() { return a; } /* End */ INT operator ++(int) { return a++; }};
It gives you a way to convert from your custom INT
type to another type (in this case, int
) without having to call a special conversion function explicitly.
For example, with the convert operator, this code will compile:
INT i(1234);int i_2 = i; // this will implicitly call INT::operator int()
Without the convert operator, the above code won't compile, and you would have to do something else to go from an INT
to an int
, such as:
INT i(1234);int i_2 = i.a; // this wont compile because a is private