当前位置:  开发笔记 > 编程语言 > 正文

使用指针进行C++运算符重载

如何解决《使用指针进行C++运算符重载》经验,为你挑选了1个好方法。



1> Adi Levin..:

显然,运算符+请求第一个参数不是指针.这可行:

Test* operator+(const Test &x, const Test& r){

    Test *test = new Test;
    test->A = x.A + r.A;
    test->B = x.B + r.B;
    return test;
}

但是如果你没有返回指针就更安全,就像Jonachim说的那样.你应该做这个:

Test operator+(const Test &x, const Test& r){

    Test test;
    test.A = x.A + r.A;
    test.B = x.B + r.B;
    return test;
}


第一个参数可以是指针.所需要的只是至少有一个参数是用户定义的类型.这可以是第一个参数,也可以是第二个参数,或两者兼而有之.
@ user3550045,这并不奇怪.C++明确指出不能为内置类型重载运算符.
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有