bool比较运算符如何在C++; 我对C++编程很陌生。请,有人能给我解释一下布尔比较运算符是如何在用户定义的数据类型中工作的吗 #include <iostream> #include <string> #include <functional> using namespace std; class person { public: float age; string name; bool operator<(const person& rhs) const { return age < rhs.age; } bool operator>(const person& rhs) const { return age > rhs.age; } }; #包括 #包括 #包括 使用名称空间std; 班主任{ 公众: 浮动年龄; 字符串名; bool操作员(const人员和rhs)const { 返回年龄>rhs年龄; } };

bool比较运算符如何在C++; 我对C++编程很陌生。请,有人能给我解释一下布尔比较运算符是如何在用户定义的数据类型中工作的吗 #include <iostream> #include <string> #include <functional> using namespace std; class person { public: float age; string name; bool operator<(const person& rhs) const { return age < rhs.age; } bool operator>(const person& rhs) const { return age > rhs.age; } }; #包括 #包括 #包括 使用名称空间std; 班主任{ 公众: 浮动年龄; 字符串名; bool操作员(const人员和rhs)const { 返回年龄>rhs年龄; } };,c++,C++,C++标准提供了一种更好的方法,可以将运算符直接用于对象。例如: class abc { public: abc() {} }; // declaration abc a1, a2, a3; a3 = a1 + a2; // impossible expression without operator overload 在这里,您不能使用算术运算符+,因为它们是abc类类型的对象,并且表达式不能以这种方式求值 代码使用的概念称为运算符重载,也可以在结构中使用 因此,有两种方法可以实现

C++标准提供了一种更好的方法,可以将运算符直接用于对象。例如:

class abc {
public:
    abc() {}
};

// declaration
abc a1, a2, a3;
a3 = a1 + a2; // impossible expression without operator overload
在这里,您不能使用算术运算符
+
,因为它们是
abc
类类型的对象,并且表达式不能以这种方式求值

代码使用的概念称为运算符重载,也可以在结构中使用

因此,有两种方法可以实现这一点:

  • 定义一个类成员函数,用于比较类的私有变量成员


  • 或者,使用操作符重载来定义操作符的内容,例如
    +
    在您的书中对它们进行了解释。不需要在这里重复它的内容。顺便说一下,对于那个类来说,这些不是特别好的比较运算符实现。您到底不明白什么?您已经实现的有什么问题?请查阅有关运算符重载的教程。您不了解什么?(不清楚你在这个问题上遇到了什么问题)你是从C++学习C++的吗?