C++学习Day05之左移运算符重载


一、程序及输出

1.1 利用成员函数做<<重载

#include<iostream>
using namespace std;

class Person
{
   
public:

	Person(int a, int b)
	{
   
		this->m_A = a;
		this->m_B = b;
	}

   ostream& operator<<(ostream& cout) {
   
		cout << "m_A = " << this->m_A << " m_B = " << this->m_B;
		return cout;
	}

private:
	int m_A;
	int m_B;
};
void test01()
{
   
	Person p1(10, 10);
	p1 <<cout << endl;
}

int main(){
   
	test01();
	system("pause");
	return EXIT_SUCCESS;
}

输出:
在这里插入图片描述

1.2 利用全局函数做<<重载

#include<iostream>
using namespace std;

class Person
{
   
	friend ostream& operator<<(ostream &cout, Person & p1);

public:

	Person(int a, int b)
	{
   
		this->m_A = a;
		this->m_B = b;
	}

private:
	int m_A;
	int m_B;
};

//利用全局函数 实现左移运算符重载
ostream& operator<<(ostream &cout, Person & p1)
{
   
	cout << "m_A = " << p1.m_A << " m_B = " << p1.m_B;
	return cout;
}

void test01()
{
   
	Person p1(10, 10);

	cout << p1 << endl;

}

int main(){
   
	test01();
	system("pause");
	return EXIT_SUCCESS;
}

输出:
在这里插入图片描述


二、分析与总结

在 C++ 中,左移运算符 << 可以被重载为类的成员函数或全局函数,以实现自定义类型的输出操作。
全局函数重载
通过在类外定义一个全局函数来重载左移运算符 <<。
重载函数的参数应包括 std::ostream& 类型的输出流对象和要输出的自定义类型对象。
在重载函数内部,使用输出流对象来输出自定义类型的成员变量或数据。
成员函数重载
将左移运算符 << 重载为类的成员函数,使其能够直接访问类的私有成员。
在类的定义中声明成员函数,并在类外实现该函数。
成员函数的参数只需一个 std::ostream& 类型的输出流对象。
在成员函数内部,使用 this 指针来访问类的成员变量,并使用输出流对象来输出数据。
使用左移运算符
在使用左移运算符输出自定义类型对象时,可以直接在对象后面使用 << 运算符,并传递输出流对象作为参数。
重载的左移运算符函数将被调用,将自定义类型对象的数据输出到指定的输出流中。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-18 15:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-18 15:42:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-18 15:42:02       82 阅读
  4. Python语言-面向对象

    2024-02-18 15:42:02       91 阅读

热门阅读

  1. 39. 组合总和

    2024-02-18 15:42:02       41 阅读
  2. kvm 虚拟化

    2024-02-18 15:42:02       50 阅读
  3. Leetcode29:两数相除

    2024-02-18 15:42:02       45 阅读
  4. 华为OD机试真题- 攀登者2-2024年OD统一考试(C卷)

    2024-02-18 15:42:02       48 阅读
  5. C语言之输入字符串的字符统计

    2024-02-18 15:42:02       54 阅读
  6. css的对齐方式

    2024-02-18 15:42:02       63 阅读
  7. 汇编+C语言实现四路抢答器的分析与运行过程

    2024-02-18 15:42:02       49 阅读
  8. Rust HashMap详解及单词统计示例

    2024-02-18 15:42:02       33 阅读