社区
C语言
帖子详情
重载+号运算符!
大道如海
2003-05-21 07:29:06
我在做一个复数的实例时,用到+号运算符的重载.
我试着写了一个,可以运行,但不知道符不符合运算符重载的规则,或者说下面的写法有没有不妥的地方。如果有,如何改正。
Complex Complex::operator+(Complex right)
{
realPart += right.realPart ;
imaginaryPart += right.imaginaryPart ;
return *this;
}
...全文
116
7
打赏
收藏
重载+号运算符!
我在做一个复数的实例时,用到+号运算符的重载. 我试着写了一个,可以运行,但不知道符不符合运算符重载的规则,或者说下面的写法有没有不妥的地方。如果有,如何改正。 Complex Complex::operator+(Complex right) { realPart += right.realPart ; imaginaryPart += right.imaginaryPart ; return *this; }
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
meteor135
2003-05-21
打赏
举报
回复
Complex Complex::operator+(Complex const &right)
{
realPart += right.realPart ;
imaginaryPart += right.imaginaryPart ;
return this; //这里对吗?this可是指针哦!改成return *this;
}
forever1314
2003-05-21
打赏
举报
回复
no problem!
大道如海
2003-05-21
打赏
举报
回复
TO:xieha(右边的话是正确的,左边的话是错误的)
似乎return this这句话有问题。
煜知搬砖者
2003-05-21
打赏
举报
回复
sorry,上面写错了:呵呵,
Complex Complex::operator+(Complex const &right)
{
realPart += right.realPart ;
imaginaryPart += right.imaginaryPart ;
return this;
}
煜知搬砖者
2003-05-21
打赏
举报
回复
Complex& Complex::operator+(Complex const &right)
{
realPart += right.realPart ;
imaginaryPart += right.imaginaryPart ;
return this;
}
realdreamer
2003-05-21
打赏
举报
回复
msdn 有例子:
// operator_overloading.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
class Complex
{
public:
Complex( double r, double i ) : re(r), im(i) {}
Complex operator+( Complex &other );
void Display( ) { cout << re << ", " << im << endl; }
private:
double re, im;
};
// Operator overloaded using a member function
Complex Complex::operator+( Complex &other )
{
return Complex( re + other.re, im + other.im );
}
void main()
{
Complex a = Complex( 1.2, 3.4 );
Complex b = Complex( 5.6, 7.8 );
Complex c = Complex( 0.0, 0.0 );
c = a + b;
c.Display();
}
大道如海
2003-05-21
打赏
举报
回复
realPart,imaginaryPart为代表实部和虚部的成员变量。
C++——
运算符
重载
运算符
重载
:对数据类型已有的
运算符
重新进行定义赋予另一种功能,以适应不同的数据类型对于内置数据类型,编译器知道如何进行运算int a = 10;int b = 20;//计算机知道如何计算但是如果是两个自定义的类相加计算机就不知道如何计算,因为加
号
两边不是系统内置的数据结构。
运算符
重载
———
运算符
重载
的基本概念
引入
运算符
重载
的目的: 由于C++预定义的
运算符
,只能用于基本数据类型的运算:整型、实型、字符型、逻辑型,导致对象无法通过
运算符
进行运算。故引入了
运算符
重载
。
运算符
重载
: 1:
运算符
重载
,就是对已有的
运算符
(C++中预定义的
运算符
)赋予多重的含义,使同一
运算符
作用于不同类型的数据时导致不同类型的行为。 2:
运算符
重载
的目的是:扩展C++中提供的
运算符
的适用范围,使之能作用于对象。 3:
运算符
重载
的实质是函数
重载
,可以
重载
为普通函数,也可以
重载
为成员函数 4:把含
运算符
的表达式转换成对
运算符
函数的调用。
C++
重载
+
号
运算符
#include <iostream> #include <string> using namespace std; /************************************************************************
运算符
重载
operator+ 1.成员函数
重载
运算符
; 2.自定义成员函数实现两个对象相加; 3.全局函数
重载
运算符
; /**********************************************
运算符
重载
之成员
运算符
重载
成员
运算符
重载
函数 成员
运算符
重载
函数,即把
运算符
重载
函数定义为某个类的成员函数。 1、定义成员
运算符
重载
函数的语法形式 (1)在类的内部,定义成员
运算符
重载
函数的格式如下: 函数类型 operator
运算符
(形参表){ 函数体 } (2)成员
运算符
重载
函数也可以在类中声明成员函数的原型,在类外定义。 在类内,声明成员
运算符
重载
函数原型的格式如下: class X{ 函数类型 operat...
运算符
重载
运算符
重载
1、
运算符
重载
基本概念2、
运算符
重载
方式2.1.非友元的
运算符
重载
函数2.2.友元函数的
运算符
重载
2.3.普通函数的
运算符
重载
3、典型
运算符
重载
3.1.
重载
赋值
运算符
“=” 1、
运算符
重载
基本概念 我们简单的
运算符
,有"+", “-”, “*”, “/”,等等基本的运算,可以用两个赋予值的变量,变量可以是int,float,double类型,进行运算,但是在C++中有了对象,导致对象无法通过
运算符
进行运算,故引入了
运算符
重载
。 实现复数的相加减运算示例: #include <iostream
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章