首页 > 其他分享 >30.左移运算符重载

30.左移运算符重载

时间:2022-10-05 22:33:54浏览次数:50  
标签:10 左移 name 30 运算符 ostream id

1.视频内容

程序1:

#pragma warning(disable:4996)
//2022年10月5日21:11:12
#include <iostream>
using namespace std;

class Maker
{
public:
    Maker(int id, string name)
    {
        this->id = id;
        this->name = name;
    }
public:
    int id;
    string name;
};

//1.形参和实参是一个对象
//2.不能改变库中的代码
//3.ostream中把拷贝构造私有化了
void operator<<(ostream &out, Maker &m)
{
    cout << m.id << " " << m.name << endl;
}

void test01()
{
    Maker m(10, "小花");
    cout << m;
}

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

输出结果:

10 小花
请按任意键继续. . .


程序2:

#pragma warning(disable:4996)
//2022年10月5日21:11:12
#include <iostream>
using namespace std;

class Maker
{
public:
    Maker(int id, string name)
    {
        this->id = id;
        this->name = name;
    }
public:
    int id;
    string name;
};

//1.形参和实参是一个对象
//2.不能改变库中的代码
//3.ostream中把拷贝构造私有化了
//4.如果要和endl一起使用,那么必须返回ostream的对象
ostream &operator<<(ostream &out, Maker &m)
{
    cout << m.id << " " << m.name << endl;

    return out;
}

void test01()
{
    Maker m(10, "小花");
    cout << m;
    cout << endl;

    cout << 10;//内部重载了数据类型
}

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

输出结果:

10 小花

10请按任意键继续. . .

2.左移和右移运算符重载(重点难点)

1.左移运算符重载

​ A.cout是对象,<<是左移运算符

​ B.重载左移运算符是为了直接打印对象

​ C.形参和实参是一个对象

​ D.不能改变库类中的代码

​ E.ostream中把拷贝构造函数私有化了

​ F.如果要和endl一起使用,那么必须返回ostream的对象.

标签:10,左移,name,30,运算符,ostream,id
From: https://www.cnblogs.com/codemagiciant/p/16756616.html

相关文章

  • 9/30课堂笔记及动手动脑
    类的定义:1、定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性。2、对象则是类的具体化,是类的实例。3、类通过派生可以有子类,同样也......
  • 29.减号运算符重载
    1.前置和后置(++/--)运算符重载重载的++和--运算符有点让人不知所措,因为我们总是希望能根据它们出现在所作用对象的前面还是后面来调用不同的函数。解决办法很简单,例......
  • 二、运算符号和部分运算符号的优先级
    目录一、基本运算符号1、数学运算符号2、比较运算符号二、常用赋值符号1、链式赋值2、交叉赋值3、解压赋值三、逻辑运算符号1、and2、or3、not四、成员运算符号innotin五......
  • 04.运算符
    运算符用来对一个或多个值进行运算并返回运算结果。比如,+就是一个运算符,用来求两个数的和。leta=1+1,变量的a的值是2。算术运算符算术运算符用来完成算术运算,功能和......
  • 一天star量破千,300行代码,特斯拉AI总监Karpathy写了个GPT的Pytorch训练库
    整理:公众号@机器之心本文仅做学术分享,如有侵权,请联系删除。如果说GPT模型是所向披靡的战舰,那么minGPT大概算是个头虽小但仍能乘风破浪的游艇了吧。最近,「史上最大AI模......
  • Kornia开源可微分计算机视觉库,基于Pytorch,GitHub 3000星
    编辑丨机器之心OpenCV创始人GaryBradski等人近期发表了一篇Kornia的综述。Kornia是一个基于PyTorch的可微分的计算机视觉库,实现了可微的基础计算机视觉算子和可微......
  • C语言-运算符 sizof与strlen的区别
    1、sizeof是运算符,strlen是C语言标准库函数。2、 strlen 测量的是字符串的实际长度,以’\0’结束,返回结果不包括’\0’。3、而sizeof测量的是字符的分配大小,它的参数可......
  • MySQL8.0.30安装教程
    第一步:输入MySQL网站       www.mysql.com  选择DOWNLOADS并点击进入:  选择最下面的“MySQL Community(GPL)Downloads>>”选项,进入下一页......
  • leetcode 530. Minimum Absolute Difference in BST二叉搜索树的最小绝对差 (简单)
    一、题目大意给你一个二叉搜索树的根节点root,返回树中任意两不同节点值之间的最小差值。差值是一个正数,其数值等于两值之差的绝对值。示例1:输入:root=[4,2,6,1......
  • 1303_通过keyfreq统计emacs中的功能按键使用频率
    全部学习汇总:​​GreyZhang/editors_skills:SummaryforsomecommoneditorskillsIused.(github.com)​​很多人学习emacs似乎是因为看了陈斌的一年之文,我虽然不是因......