C++ 程式過載提取運算子
假設我們有一個 Person 類,它有兩個屬性 first_name 和 last_name。它還有兩個方法 get_first_name() 和 get_last_name() 分別用於檢索或設定名和姓。我們必須過載提取運算子 (<<),以便使用 cout 語句列印名和姓。
因此,如果輸入是帶有名和姓("Sumit"、"Ray")的 person 物件,則輸出將是名 - Sumit,姓 - 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.
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP