I have following class:-
class myclass
{
size_t st;
myclass(size_t pst)
{
st=pst;
}
operator int()
{
return (int)st;
}
int operator+(int intojb)
{
return int(st) + intobj;
}
};
this works fine as long as I use it like this:-
char* src="This is test string";
int i= myclass(strlen(src)) + 100;
but I am unable to do this:-
int i= 100+ myclass(strlen(src));
Any idea, how can I achieve this??
Implement the operator overloading outside of the class:
class Num
{
public:
Num(int i)
{
this->i = i;
}
int i;
};
int operator+(int i, const Num& n)
{
return i + n.i;
}
You have to implement the operator as a non-member function to allow a primitive int on the left hand side.
int operator+( int lhs, const myclass& rhs ) {
return lhs + (int)rhs;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With