当前位置: 首页 > article >正文

运算符重载(输出运算符<<) c++

我们来看下面这个Bug

报错1:打印整形(int)可以直接打印,打印字符(char)也可以直接打印,那是因为本身就已经给我们的内置类型准备好了一个输出运算符,可以直接用,但是我们自定义的类型没有这个输出运算符和它匹配,它不能使用这个输出运算符来打印,
报错2:也就是说在这个输出运算符的右边还不支持Stu类型

那怎么解决呢?

其实在C++中要针对⾃定义类型的变量,想使⽤ cout 和 << 来输出变量的内容, 就得对 << 这个输出运算符进⾏重载。具体代码如下:

cout的类型是ostream
重载的是<<(输出运算符),让<<支持struct Stu类型数据的打印
ostream& operator<<(ostream& os, const struct Stu& s)
{
    os << "名字:" << s.book << '\n';
    os << "语文:" << s.price << '\n';
    os << "数学:" << s.id << '\n';
    return os;
}
输出:
名字:红楼梦
语文:100
数学:1
  •   这样就把s里的信息打印出来了

解释1:你会发现我们调用cout<<s,因为它最终又返回了cout,使得后面还有数据要输出的话可以输出

 


http://www.kler.cn/a/526823.html

相关文章:

  • golang面试题
  • Google 和 Meta 携手 FHE 应对隐私挑战
  • android获取EditText内容,TextWatcher按条件触发
  • mysql_init和mysql_real_connect的形象化认识
  • shell脚本批量修改文件名之方法(The Method of Batch Modifying File Names in Shell Scripts)
  • python:斐索实验(Fizeau experiment)
  • 使用 scikit-learn 实现简单的线性回归案例
  • 使用 Motor-CAD 脚本实现 Maxwell 电机模型的 Ansys 自动化
  • Linux网络 | 网络层IP报文解析、认识网段划分与IP地址
  • 异步编程进阶:Python 中 asyncio 的多重应用
  • MapReduce简单应用(一)——WordCount
  • CSS 基础:层叠、优先级与继承
  • DDD - 微服务架构模型_领域驱动设计(DDD)分层架构 vs 整洁架构(洋葱架构) vs 六边形架构(端口-适配器架构)
  • 搭建自己的专属AI——使用Ollama+AnythingLLM+Python实现DeepSeek本地部署
  • 动态规划DP 最长上升子序列模型 拦截导弹(题目分析+C++完整代码)
  • 【C++语言】卡码网语言基础课系列----5. A+B问题VIII
  • MySQL(导入sql文件)
  • 蓝桥杯思维训练营(一)
  • sleep和wait
  • 基于遗传优化GRNN和Hog特征提取的交通标志识别算法matlab仿真
  • Android Studio 正式版 10 周年回顾,承载 Androider 的峥嵘十年
  • 1.27刷题记录
  • 【leetcode练习·二叉树】计算完全二叉树的节点数
  • Git进阶之旅:Git Hub注册创建仓库
  • 解决运行npm时报错
  • 面向对象编程(OOP)基础:类与对象