社区
C++ 语言
帖子详情
双目运算符重载 operator==
windxnet
2005-08-12 09:01:14
怎么重载"=="啊.为什么我重载的时候,告诉我说"=="只有一个参数啊?怎么回事啊?能不能重载啊?如果能应该怎么重载呢?谢谢...
...全文
405
14
打赏
收藏
双目运算符重载 operator==
怎么重载"=="啊.为什么我重载的时候,告诉我说"=="只有一个参数啊?怎么回事啊?能不能重载啊?如果能应该怎么重载呢?谢谢...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaocai0001
2005-08-13
打赏
举报
回复
C++中有唯一的三目运算符 ? :
但这个运算符不可以重载!
也不能重载系统没有的运算符,如重载operator **()表示幂运算,因为系统没有**运算
zousoft
2005-08-13
打赏
举报
回复
是这样的,全局方式重载,几元运算就是几个参数,分别对应左右。成员函数方式比全局少一个左参数,这个参数就是类对象了。
同样一元运算,全局方式是一个参数,成员函数方式少一个,也就是没有参数。但是这里有一个比较奇怪的地方,这盛下来的参数不是左对象,而是右对象。举个例子:就是“++a”。这点我一开始也觉得挺奇怪的,但是没办法,死记吧。如果要表示“a++”,需要强行设一个哑元。(一般是int)把单元运算当成双元,其中右对象为毫无意义的哑元。(把我们要的对象强行挤到左边去-_-!)
lxk_cool
2005-08-13
打赏
举报
回复
不能臆造运算符.
重载时,不能改变原有的优先级,结合性,语法结构
windxnet
2005-08-12
打赏
举报
回复
哦.我明白了.谢谢你.那如果运算符是三元的呢?
pyrophile
2005-08-12
打赏
举报
回复
用成员函数重载运算苻的函数参数表中,若运算符是一元的,则参数表为空,此时当前对象 作为运算符的
单操作符;若运算符是二元的,则参数表中有一个操作数,此时当前对象作为此运算符的左操作数,参数表
中的操作数作为此运算符的右操作数.
xiaocai0001
2005-08-12
打赏
举报
回复
你这样写的是成员函数方式,只能有一个参数
bool operator ==(const myPoint &pt);//声明部分
bool myPoint::operator==(const myPoint& pt)
{
if(this->m == pt.m && this->n == pt.n)
return true;
else
return false;
}
友元方式
friend bool operator==(const myPoint &p1,const myPoint &p2);//声明部分,类体内
//实现部分,类体外
bool operator==(const myPoint& p1,const myPoint& p2)
{
if(p1.m==p2.m && p1.n==p2.n)
return true;
else
return false;
}
windxnet
2005-08-12
打赏
举报
回复
==不是把两边的两个变量进行比较后产生一个bool值的吗?偶猜的啊.不对吗?我是想这么写.
bool myPoint::operator==(const myPoint& p1,const myPoint& p2)
{
if(p1.m==p2.m && p1.n==p2.n) return true;
else return false;
}
xiaocai0001
2005-08-12
打赏
举报
回复
bool ==();//这行是什么玩意??
xiaocai0001
2005-08-12
打赏
举报
回复
另外一个参数就是*this传过去的!
windxnet
2005-08-12
打赏
举报
回复
class myPoint
{
public:
myPoint& operator=(const myPoint &p);
friend bool operator==(const myPoint &p1,const myPoint &p2);
bool ==();
int m,n;
};
好像不行,还想问一下.一个参数怎么重载爽目运算符啊?
yhbttfile
2005-08-12
打赏
举报
回复
呵呵,不会的就先依样画瓢~~~
看看人家是怎么写的,拿过来修改修改就OK了。
我写程序的时候其实是很懒的~~
foochow
2005-08-12
打赏
举报
回复
同意一楼
xiaocai0001
2005-08-12
打赏
举报
回复
设你自定义的类是 ClassType
则成员函数方式重载的格式是
bool operator ==(const ClassType ¶);
友元方式重载则是:
friend bool operator ==(const ClassType ¶A, const Class ¶B);
xiaocai0001
2005-08-12
打赏
举报
回复
友元方式重载时有两个参数
成员函数重载时只有一个参数
C++
运算符重载
详细介绍PPT
详细介绍 C++
运算符重载
的PPT 文中部分内容: 下标运算符“[ ]”重载 C++把下标运算符[ ]看成一个
双目
运算符,其操作数为和,对应的运算符为
operator
[ ],必须重载为一个成员函数。对于下标
运算符重载
定义形式如下: 类型 类名::
operator
[ ](形参) {函数体} 先看一个例子7.13 说明: 重载下标运算符“[]”的一个优点是可以增加C++中数组检索的安全性 重载下标运算符“[]”时,返回一个int的引用,所以可使重载“[]”用在赋值语句的左边。
C++实验报告实验七-
运算符重载
实验七
运算符重载
一、实验目的 (1).编写程序熟悉
运算符重载
函数的定义和使用; (2).编写程序熟悉重载单目和
双目
运算符的方法; (3).编写程序熟悉流插入和提取运算符的重载; 二、实验要求 1、创建一个二维坐标点point的类别,该类别能够存放一个二维坐标点(x,y)。重载运算符“++”,使之能用于坐标点x和y都增加1。并重载输出流符号,使point类的对象输出格式是(x,y)形式。测试该类别和++,<<符号。写一个cpp文件即可。 2、P509 17.21题。 三、提交要求 要求:提交时将两个练习的文件写在一个word文档提交。 第一题: #include
using namespace std; class Point { private: int x,y; public: Point(int x=0,int y=0) { this->x = x; this->y = y; } friend Point
operator
++ (Point &p); friend P
flink kubernetes
operator
入门与实战
Flink Kubernetes
Operator
是一个基于 Kubernetes 的 Apache Flink 集群管理工具,它可以帮助用户在 Kubernetes 上轻松部署和管理 Flink 集群。本课程将介绍 Flink Kubernetes
Operator
的基本概念和使用方法。在本...
C++之
双目
/单目等运算符的重载
1.
双目
运算符重载
1.1格式: L/*左操作数*/ # /*操作符*/ R/*右操作数*/ L#R => L.
operator
#(R) 成员形式,写在类中,成员函数形式 =>
operator
#(L,R) 非成员形式 //需要定义为类的友元函数 如: cout << c1 xss=removed> cout.
operator
<<(c1) =>
operator
<<(cout,c1) 1.2实际操作形式: 类名
operator
+(const 类名& 对象名) { return
C++综合实验报告.doc
华北科技学院计算机系综合性实验 实 验 报 告 课程名称 C++程序设计B 实验学期 2011 至 2012 学年 第 1 学期 学生所在系部 年级 专业班级 学生姓名 学号 任课教师 实验成绩 计算机系制 实验报告须知 1. 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。 2. 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容 、结果及分析等。 3. 教师应该填写的内容包括:实验成绩、教师评价等。 4. 教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验成 绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及的 程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与该 课程的期末考试成绩一同上交到系里存档。 5. 未尽事宜,请参考该课程的实验大纲和教学大纲。 《C++程序设计B》课程综合性实验报告 开课实验室:基础五 2011年6月20日 "实验题目 "复数类的设计 " "一、实验目的 " "掌握类的概念及构造方法;掌握构造函数的定义与使用;掌握友元的定义与使用;掌握运" "算符的重载定义与使用。 " "二、设备与环境 " "微型计算机、Windows 系列操作系统 、Visual C++6.0软件 " "三、实验内容 " "设计复数类,重载+,-,*,/,<<,>>等运算符。编程设计实现下列函数: " "MyComplex(); " "MyComplex(int a); " "MyComplex(int a,int b) ; " "MyComplex(const MyComplex& v) ; " "Mycomplex&
operator
=(const Mycomplex& rhs); " "Mycomplex&
operator
+=(const Mycomplex& rhs); " "Mycomplex&
operator
-=(const Mycomplex& rhs); " "Mycomplex&
operator
*=(const Mycomplex& rhs); " "Mycomplex&
operator
/=(const Mycomplex& rhs); " "friend MyComplex
operator
+(MyComplex m,MyComplex n) ; " "friend MyComplex
operator
-(MyComplex m,MyComplex n) ; " "friend MyComplex
operator
*(MyComplex m,MyComplex n) ; " "friend MyComplex
operator
/(MyComplex m,MyComplex n) ; " "friend ostream&
operator
<<(ostream& s,MyComplex t); " "friend istream&
operator
>>(istream& s,MyComplex& t); " "四、实验结果及分析 " "1、题目分析及设计思路 " "题目要求实现复数的运算,首先创建一个类,其成员函数主要包括构造函数、拷贝函数" "、单目运算符的重载函数和
双目
运算符重载
友元函数,然后是函数体的实现及主函数实" "现。 " "2、实验结果及分析 " "程序: " "#include
" "#include
" "class mycomplex//类的声明 " "{ " "private://私有数据 " "double real;// 实部 " "double imag;//虚部 " "public://公共数据 " "mycomplex(); " "mycomplex(double a); " "mycomplex(double a,double b); " "mycomplex(const mycomplex&v); " "mycomplex&
operator
=(const mycomplex& rhs); " "mycomplex&
operator
+=(const mycomplex& rhs); " "mycomplex&
operator
-=(const mycomplex& rhs); " "mycomplex&
operator
*=(const mycomplex& rhs); " "mycomplex&
operator
/=(const mycomplex& rhs); " "friend mycomplex
operator
+(mycomplex m,mycomplex n); " "friend mycomplex op
C++ 语言
64,641
社区成员
250,579
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章