首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

C++ Practical-2 day4 运算符重载之输入输出运算符重载

  • 25-02-19 07:41
  • 3282
  • 9796
blog.csdn.net

系列文章目录

点击直达——文章总目录


文章目录

  • 系列文章目录
  • C++ Practical-2 day4 运算符重载之输入输出运算符重载
    • Overview
    • 1.运算符重载之输入输出运算符重载
      • 1.1.重载输出运算符 `<<`
        • 1.1.1.语法
        • 1.1.2.示例
      • 1.2.重载输入运算符 `>>`
        • 1.2.1.语法
        • 1.2.2.示例
      • 1.3.注意事项
    • 关于作者


C++ Practical-2 day4 运算符重载之输入输出运算符重载

文章目录

  • 系列文章目录
  • C++ Practical-2 day4 运算符重载之输入输出运算符重载
    • Overview
    • 1.运算符重载之输入输出运算符重载
      • 1.1.重载输出运算符 `<<`
        • 1.1.1.语法
        • 1.1.2.示例
      • 1.2.重载输入运算符 `>>`
        • 1.2.1.语法
        • 1.2.2.示例
      • 1.3.注意事项
    • 关于作者

Overview

  • C++不练习coding,就相当于空中楼阁,基础不扎实
  • 光吃不干,等于没吃

1.运算符重载之输入输出运算符重载

在C++中,重载输入输出运算符(operator<< 和 operator>>)可以让你自定义类的对象与标准输入输出流(如 std::cout 和 std::cin)之间的交互方式。这使得你的类的对象可以像内置类型一样直接与输入输出流进行交互。

1.1.重载输出运算符 <<

1.1.1.语法
friend std::ostream& operator<<(std::ostream& os, const 类名& obj);
  • 1
1.1.2.示例

假设你有一个 Point 类,你想通过 std::cout 打印它的坐标。

#include 

class Point {
private:
    int x, y;

public:
    Point(int x, int y) : x(x), y(y) {}

    // 重载输出运算符
    friend std::ostream& operator<<(std::ostream& os, const Point& p) {
        os << "(" << p.x << ", " << p.y << ")";
        return os;
    }
};

int main() {
    Point p(10, 20);
    std::cout << p << std::endl;
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

1.2.重载输入运算符 >>

1.2.1.语法
friend std::istream& operator>>(std::istream& is, 类名& obj);
  • 1
1.2.2.示例

继续使用 Point 类,你可以定义一个输入运算符,允许从 std::cin 读取坐标。

#include 

class Point {
private:
    int x, y;

public:
    Point() : x(0), y(0) {}

    // 重载输入运算符
    friend std::istream& operator>>(std::istream& is, Point& p) {
        is >> p.x >> p.y;
        return is;
    }

    // 重载输出运算符
    friend std::ostream& operator<<(std::ostream& os, const Point& p) {
        os << "(" << p.x << ", " << p.y << ")";
        return os;
    }
};

int main() {
    Point p;
    std::cout << "Enter coordinates of the point (x y): ";
    std::cin >> p;
    std::cout << "You entered: " << p << std::endl;
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

1.3.注意事项

  1. 友元函数:输入输出运算符通常定义为类的友元函数,这样它们就可以访问类的私有成员。
  2. 返回类型:输入输出运算符应该返回对流的引用,以便可以链式调用。
  3. 异常处理:在处理输入输出时,应该考虑异常处理,例如输入不合法的情况。
  4. 效率:直接操作流可以提高效率,因为避免了额外的字符串转换。

通过重载输入输出运算符,你的类将更加易于使用,代码可读性也会提高。


关于作者

  • 微信公众号:WeSiGJ
  • GitHub:https://github.com/wesigj/cplusplusboys
  • CSDN:https://blog.csdn.net/wesigj
  • 微博:
  • -版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
WeSiGJ
微信公众号
共同分享,共同交流, 共同学习!
注:本文转载自blog.csdn.net的WeSiGJ的文章"https://blog.csdn.net/wesigj/article/details/142603364"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top