C++ 程序重载提取运算符

c++server side programmingprogramming

假设我们有一个 Person 类,它有两个属性 first_name 和 last_name。它还有两个方法,分别称为 get_first_name() 和 get_last_name(),用于检索或设置名字和姓氏。我们必须重载提取运算符 (<<) 来打印名字和姓氏,以便使用 cout 语句打印它们。

因此,如果输入像一个有名字和姓氏的人对象("Sumit"、"Ray"),那么输出将是 First name − Sumit, Last name − Ray。

为了解决这个问题,我们将遵循以下步骤 −

  • 要重载提取运算符,应在类外部定义它

  • 返回类型将是 ostream 引用

  • 输入参数是 ostream 引用变量 os 和对象引用变量

  • 使用 os 按正确顺序提取对象的所有部分

  • 返回 os 对象引用。

示例

让我们看看下面的实现以便更好地理解 −

#include <iostream>
using namespace std;
class Person {
    private:
        string f_name;
        string l_name;
    public:
        Person(string first_name, string last_name) : f_name(first_name), l_name(last_name) {}
        string& get_first_name() {
          return f_name;
        }
        string& get_last_name() {
          return l_name;
        }
};
ostream& operator<<(ostream& os, Person& p) {
    os << "First name: " << p.get_first_name() << ", Last name: " << p.get_last_name();
    return os;
}
int main(){
   Person p("Sumit", "Ray");
   
   cout << p << ", he is our member.";
}

输入

p("Sumit", "Ray")

输出

First name: Sumit, Last name: Ray, he is our member.

相关文章