我有以下类:
class myclass { size_t st; myclass(size_t pst) { st=pst; } operator int() { return (int)st; } int operator+(int intojb) { return int(st) + intobj; } };
只要我这样使用,这工作正常:
char* src="This is test string"; int i= myclass(strlen(src)) + 100;
但我无法做到这一点:
int i= 100+ myclass(strlen(src));
任何想法,我该如何实现?
解决方法
实现运算符在课外的重载:
class Num { public: Num(int i) { this->i = i; } int i; }; int operator+(int i,const Num& n) { return i + n.i; }