相关疑难解决方法(0)

运算符重载的基本规则和习惯用法是什么?

注意:答案是按照特定的顺序给出的,但由于许多用户根据投票而不是给出的时间对答案进行排序,因此这里是答案索引,它们是最有意义的顺序:

(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)

c++ operator-overloading operators c++-faq

2074
推荐指数
8
解决办法
88万
查看次数

如何最好地重载operator <> <=> =但只写一个或两个比较函数?

我有一个类型为std :: string的类.我想通过比较属性为类提供一些比较运算符函数,如<,>,==,<=和> =.

我的问题是:任何简单的方法或工具

(1)只写一个或两个函数,例如一个用于运算符<(和==),其他函数可以自动生成.

(2)甚至更简单,因为类比较取决于std::string其比较函数已经提供的类型属性.

c++ comparison operator-overloading

21
推荐指数
3
解决办法
4987
查看次数

C++是operator!=当operator == defined时自动提供

我想知道在我的班级中定义operator ==时是否自动提供operator!=?当我在A类中定义了operator ==时,显然A a,A b,a == b有效,但是a!= b则没有.但是我不确定它是否总会发生.这有什么例外吗?

c++ operator-overloading

5
推荐指数
3
解决办法
3134
查看次数

为什么C++ STL容器使用"小于"运算符<而不是"等于"运算符==作为比较器?

在自定义类中实现比较器运算符时std::map,我遇到了这个问题,无法看到任何问题.

除了上述问题,还有兴趣简要了解一下,如何operator<工作std::map.

问题的起源:

struct Address {
  long m_IPv4Address;
  bool isTCP;
  bool operator< (const Address&) const;  // trouble
};
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading map comparator

4
推荐指数
2
解决办法
5966
查看次数