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