C中的操作符重载为int obj

前端之家收集整理的这篇文章主要介绍了C中的操作符重载为int obj前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下类:
  1. class myclass
  2. {
  3. size_t st;
  4.  
  5. myclass(size_t pst)
  6. {
  7. st=pst;
  8. }
  9.  
  10. operator int()
  11. {
  12. return (int)st;
  13. }
  14.  
  15. int operator+(int intojb)
  16. {
  17. return int(st) + intobj;
  18. }
  19.  
  20. };

只要我这样使用,这工作正常:

  1. char* src="This is test string";
  2. int i= myclass(strlen(src)) + 100;

但我无法做到这一点:

  1. int i= 100+ myclass(strlen(src));

任何想法,我该如何实现?

解决方法

实现运算符在课外的重载:
  1. class Num
  2. {
  3. public:
  4. Num(int i)
  5. {
  6. this->i = i;
  7. }
  8.  
  9. int i;
  10. };
  11.  
  12. int operator+(int i,const Num& n)
  13. {
  14. return i + n.i;
  15. }

猜你在找的C&C++相关文章