这篇文章主要介绍“c++运算符重载的用法”,在日常操作中,相信很多人在c++运算符重载的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c++运算符重载的用法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
友元函数
重载:复合赋值
Operator pairings
自增自减运算符的重载
c++20,spaceship operator
一种全局函数,可以在类里声明,其他地方定义。或者在类里定义生命。
但是这个友元函数,不是类的成员。用的时候直接用,但是可以接触类的所有权限的变量。
对于,重载操作符来说,可以把一些重载体函数定义为友元函数。
具体来说,如果进行运算的这两个类,是对等的,没有修改任一个的值,那么,建议用友元。
如果,类似=,是赋值,对左边的变量做修改了。那么这时候应该重载为成员函数。
许多操作符是成对的,重载其中一个的时候,另一个相对应的也应该重载。
对于a++和++a,这两个运算符哪个在前,哪个后。函数是不一样的
就是只需要重载一个,其他的就都能重载了。
#include <compare> // return type deduced as std::strong_ordering friend auto operator<=>(point p1, point p2) = default; int x_; int y_; 1 #include <iostream> 2 3 class point { 4 public: 5 point(int x, int y) 6 : x_{x} 7 , y_{y} {} 8 9 // hidden friend - preferred 10 11 12 13 private: 14 15 16 }; 17 18 auto main() -> int { 19 auto const p2 = point{1, 2}; 20 auto const p1 = point{1, 2}; 21 std::cout << "p1 == p2 " << (p1 == p2) << '\n'; 22 std::cout << "p1 != p2 " << (p1 != p2) << '\n'; 23 std::cout << "p1 < p2 " << (p1 < p2) << '\n'; 24 std::cout << "p1 > p2 " << (p1 > p2) << '\n'; 25 std::cout << "p1 <= p2 " << (p1 <= p2) << '\n'; 26 std::cout << "p1 >= p2 " << (p1 >= p2) << '\n'; 27 }
到此,关于“c++运算符重载的用法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。