社区
C++ Builder
帖子详情
为什么c++ 重载<<运算符必须是两个参数
a429051366
2014-09-29 10:21:01
为什么c++ 重载<<运算符必须是两个参数,不能像+ - 运算符一样,既可以重载为两个参数,也可以重载为一个参数吗?
...全文
767
3
打赏
收藏
为什么c++ 重载<<运算符必须是两个参数
为什么c++ 重载<<运算符必须是两个参数,不能像+ - 运算符一样,既可以重载为两个参数,也可以重载为一个参数吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我不懂电脑
2014-10-16
打赏
举报
回复
输入输出重定向,要有源方和定向方
铖邑
2014-10-16
打赏
举报
回复
有的是单目 有的是双目 有的是三目,也有单双目(分不同场合)
j911
2014-09-30
打赏
举报
回复
你<<运算是不是必须要 2个操作数? + 和 - 是不是既可以2个操作数运算,又可以作为改变符号运算? - var; + var
有些
运算符
只能用成员函数进行
重载
、<<
运算符
只能用非成员函数进行
重载
、引用和
运算符
重载
有些
运算符
只能用成员函数进行
重载
“=” 号便是 原因:在进行赋值的时候会调用构造函数,比如int a, a = 5. 会执行两次构造函数,如果没
重载
"=",会调用默认的;如果
重载
了会调用
重载
后的。如果对"="用友元函数进行
重载
,友元函数只是类的“朋友”,不是类的成员函数,便会出现以下情景:程序会出现两种矛盾 1.认为没有
重载
赋值
运算符
的成员函数,调用相应的构造函数 2.在全局范围内,又
重载
了赋值
运算符
函数,赋值语句正好和这个函数匹配上了,也会去调用这个函数 出现了矛盾 **->、[]、()**同样
【
C++
】关于左移
运算符
<<
重载
、cout、endl的思考总结
这里为啥用cout和out效果相同?为啥
重载
函数的ostream的
参数
是引用?如何实现连续地输出cout<
C++
——
重载
运算符
(一)(实例)
要求,
重载
输出流中的“<<”,使得本来只能输出普通数据类型,改为可以输出类 成员函数可以进行修改,那么符号也可以进行 修改。如果我想输出一个类,但是只能按照类的属性一个一个进行输出,所以提出
重载
运算符
,简化输出类,可以直接输出类的属性: 代码如下:(未经修改的,不可以直接输出类的) #include<iostream> #include<string> usin...
C++
运算符
重载
相关的几个问题
1. 为什么需要
重载
运算符
:
C++
预定义的
运算符
,只能用于基本数据类型的运算:整型、实型、字符型、逻辑型等,且不能用于对象的运算。 当我们需要在对象之间进行运算时,就需要
重载
运算符
。 如果不
重载
运算符
,实际上也可以完成逻辑运算,但是每次需要对函数对象进行运算操作时都要手动实现一次比较麻烦,
重载
运算符
本质上相等于是对类对象的运算封装成了一个operator函数,每次需要运算时直接调用operator函数即可,更简便、直观。 2.
C++
运算符
重载
的基本形式: 返回值类型 + operator关键字 + 待
C++
输出
运算符
<<如何进行
重载
,
运算符
重载
的本质
<<
运算符
的
重载
相比其它
运算符
较为特殊,这里通过几个例子来搞懂
运算符
重载
的本质以及<<
运算符
如何进行
重载
。 我们有一个Person类,他有姓名和年龄
两个
私有属性name和age; p是Person的一个实例,我们想要把p打印出来,如果直接 cout << p 的话是错误的,如下: #include<iostream> using namespace std; class Person { public: Person(string name, int
C++ Builder
13,872
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章