我有以下类:
- 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;
- }