C中的操作符重载为int obj

前端之家收集整理的这篇文章主要介绍了C中的操作符重载为int obj前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下类:
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;
}

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