标签归档:operator

比较运算符, Min, Max, Sort 和 Order

惭愧,突然发现又是没有blog的一年。这一年不断在尝试搞大新闻,写点大东西,到现在也没憋出来。倒是又在学习新东西的过程中看到了一些零碎的小知识,很有意思.

很巧,这个也是和比较运算符相关的,和一年前的blog竟然有所重合。

还是先上结论: 当需要为类型T定义比较运算符时,所有运算符最好保证语义整体一致
* 一般来说,这很容易达到,我们只需要实现operator<(lhs,rhs),即可引申定义出其余几个比较运算符.
* 定义operator<=!(rhs < lhs)
* 定义operator>rhs Read More

[Cpp基础][10]重载运算符

重载运算符

规定

  • 赋值,取下标,调用,箭头,类型转换,这些运算符只能作为成员函数.
  • 用户重载的&&||不会进行短路求值.

习惯

  • 重载主要分为全局重载和类内重载,一般而言,二元运算都应该在全局重载(顺序问题).
  • 改变对象状态的运算符一般应当设为成员函数,拥有对称性的运算符一般应在类外重载.
  • 从技术层面说,重载运算符的参数可以是指针类型的,但是这一般与我们使用语言的习惯不符,所以形参类型最好只是TT&,而不要是指针.
  • 定义有关联的重载运算符时一定要考虑兼容性,例如a<b为假,a>b
Read More