左移和右移运算符的重载问题(里面的绝对盲点)在做了一遍,还是出错了
#include <iostream>
//实现左移和右移的重载。
using namespace std;class A
{
public:friend ostream operator<<(ostream &t1,A &a0);
public:A(int i){this->a=i;}
public:int a;
protected:
};ostream operator<<(ostream &t1,A &a0)
{t1<<a0.a<<endl;return t1;
}
int main()
{A a1(10);cout<<a1;system("pause");return 0;
}
上面这种是错的,因为定义了类ostream的对象,其他人员是不能改变iostream的任何变量和对象的,所以这里要加一个引用才对呢
#include <iostream>
//实现左移和右移的重载。
using namespace std;class A
{
public:friend ostream &operator<<(ostream &t1,A &a0);
public:A(int i){this->a=i;}
public:int a;
protected:
};ostream &operator<<(ostream &t1,A &a0)
{t1<<a0.a<<endl;return t1;
}
int main()
{A a1(10);cout<<a1;system("pause");return 0;
}
#include <iostream>using namespace std;class sten_fri
{
public:sten_fri(int a){this->a = a;}friend ostream &operator <<(ostream &out, sten_fri sf);protected:
private:int a;
};
ostream &operator <<(ostream &out, sten_fri sf)
{out << sf.a << endl;return out;
}int main()
{sten_fri a1(5);cout << a1;//这里的友元函数中ostream out中间必须加引用,要不然是错误的。system("pause");return 0;
}
转载于:https://www.cnblogs.com/xiaochige/p/6591520.html
左移和右移运算符的重载问题(里面的绝对盲点)在做了一遍,还是出错了相关推荐
- 初探C++标准库:移位左移、右移操作符的重载,C++标准库
C++标准库 移位左移.右移操作符的重载 C++标准库 移位左移.右移操作符的重载 怎么把变量/常量通过移位操作符,移到一个类的对象中去呢? #include <stdio.h>const ...
- c语言中左移右移有什么作用,C语言中左移和右移运算符详细介绍
搜索热词 C语言中左移和右移运算符详细介绍 左移运算符(< 左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负值),其右边空出的位用0填补,高位左移溢出 ...
- C++:左移和右移运算符 (> > 和 < <)
C++:左移和右移运算符 > > 和 < < 简介 语法 备注 左移 右移 移位和提升 其他详细信息 脚注 简介 按位移位运算符是右移位运算符 (>>) ,它将 s ...
- C++ 重载左移和右移运算符
C++中,标准库本身已经对左移运算符<<和右移运算符>>分别进行了重载,使其能够用于不同数据的输入输出,但是输入输出的对象只能是 C++ 内置的数据类型(例如 bool.int ...
- C语言之左移和右移运算符
1.左移运算符 格式:a<<b 将a这个数的各二进制位左移b位,要求b必须是非负整数,移动过程中,右边空出的位用0填补,高位左移溢出则舍弃该高位. 举例来看: a=5,二进制位:0000 ...
- 位运算符之---左移右移运算符(简单易懂)
前言: 位运算符是用来对二进制位进行操作的 c语言中有6种位运算符: & 按位与 [链接]: https://blog.csdn.net/weixin_42837024/article/det ...
- c语言负数左移右移_C语言位运算符:与、或、异或、取反,左移和右移
C语言位运算符:与.或.异或.取反.左移和右移 个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. ,则该位的结果值为1,否则为0 | ...
- 左移运算符和右移运算符的使用
先简单介绍一下,左移运算符和右移运算符的功能: 计算机中的数字是以二进制补码的形式存放的,而左移和右移运算符就是将内存中的二进制补码数字向左或者右移动. 左移的结果: 1.左移会让最高 ...
- C符号之逻辑运算符 左移与右移 自增自减
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本篇文章 ...
最新文章
- 腾讯“科学探索奖”提名报名正式启动
- Babel的配置和使用
- 17、Java Swing Timer:计时器组件
- 手把手实现YOLOv3(二)
- java构造函数中的this_关于构造函数中使用this的问题
- 程序员如何跟领导提离职_如何优雅地跟老板提加薪?按照这3个步骤来,也不是什么难事...
- python计算绩效工资_python实现 --工资管理系统
- ios 数组中的字典排序_利用数组和字典,实现按指定规则的排序
- 20145328 《Java程序设计》第7周学习总结
- WIN7系统怎样增加C盘空间
- spring aop聊点不一样的东西
- 如何在Mac网页中长截图?苹果电脑网页截图怎么截长图?
- MSP430单片机学习视频
- 人工智能与计算机发展史
- HC-SR501人体红外传感器
- 微信投票系统源码--微信投票系统开发功能介绍以及源码分享
- 【C语言入门小游戏】三子棋
- 【精准三点定位求解汇总】利用Python或JavaScript高德地图开放平台实现精准三点定位(经纬度坐标与平面坐标转换法求解、几何绘图法求解)
- FH8626V100之开发环境搭建
- quicktime 的历史
热门文章
- Linux查看和修改IP地址
- ORACLE中null的排序问题
- 【CCCC】L3-015 球队“食物链” (30分),搜索排列
- 【PAT乙】1064 朋友数 (20分) set用法
- cycleGAN有matlab代码吗,CycleGAN的代码组成
- Oracle→表、表字段数据类型、表DDL语句、数据DML语句、约束、case...when、decode
- bfs--最小步数--青蛙
- upper_bound( )和lower_bound()的用法
- 栈和递归---手动实现一个栈和蒜头君吃桃
- 经典问题8连:小球和盒子