加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C中的操作符重载为int obj

发布时间:2020-12-16 05:45:17 所属栏目:百科 来源:网络整理
导读:我有以下类: 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(s
我有以下类:
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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读