#include<iostream.h>
class Complex{
public:
Complex(int a,int b):x(a),y(b){}
friend const Complex operator+(Complex &c1,Complex &c2);
// friend const Complex operator-(Complex &c1,Complex &c2); //operator-不是友元函数
const Complex operator*(Complex &c1); //是成员函数的时候
friend const Complex operator/(Complex &c1,Complex &c2);
public:
void show();
int getX();
int getY();
private:
int x;
int y;
};
inline const Complex operator+(Complex &c1,Complex &c2)
{
return Complex(c1.x+c2.x,c1.y+c2.y);
}
inline const Complex operator-(Complex &c1,Complex &c2)
{
return Complex(c1.getX()-c2.getX(),c1.getY()-c2.getY());
}
const Complex Complex::operator*(Complex &c1)
{
return Complex(this->x*c1.getX(),this->y*c1.getY());
}
inline const Complex operator/(Complex &c1,Complex &c2)
{
if(c2.x==0||c2.y==0)
return Complex(0,0);
return Complex(c1.x/c2.x,c1.y/c2.y);
}
void Complex::show()
{
cout<<"x:"<<x<<endl;
cout<<"y:"<<y<<endl;
}
int Complex::getX()
{
return x;
}
int Complex::getY()
{
return y;
}
int main()
{
Complex c1(1,1);
Complex c2(1,1);
Complex c3=c1+c2;//相当于调用函数 operator+(c1,c2)
c3.show();
Complex c4=c1-c2;
c4.show();
Complex c5=c1*c2;//相当于调用函数 x.operator*(c1)
c5.show();
return 0;
}
分享到:
相关推荐
C++单目运算符重载 单目运算符只有一个操作数,如!a,-b,&c,*p,还有最常用的++i和–i等。重载单目运算符的方法与重载双目运算符的方法是类似的。但由于单目运算符只有一个操作数,因此运算符重载函数只有一个参数...
运算符重载.py python运算符重载
声明为友元函数的好处:1.和普通函数重载相比,它能够访问非公有成员。2.将双目运算符重载为友元函数,这样就可以使用交换律。弊端: 友元可以像类成员一样访问类的成
因此,运算符重载的目的是设置C++语言中的某一运算符,让它们之间并不冲突,C++语言会根据运算符的位置辨别应使用哪一种功能进行运算。可见,运算符重载的优点是允许改变使用于系统内部的运算符的操作方式,以适应...
C++类的运算符重载,包括 = ++ -- -(负号运算符) + - * / % == != < > <= >= << >>
如运算符重载和函数重载 字符串连接,+=运算符重载 求子串: 左边几个字符,,, Left(int nCount) 右边几个,, Right(int nCount) 某个位置开始的几个字符 Mid(int nPos,int nCout) 2..进一步熟悉掌握对类的构造...
详细介绍 C++运算符重载 的PPT 文中部分内容: 下标运算符“[ ]”重载 C++把下标运算符[ ]看成一个双目运算符,其操作数为<基本表达式>和<表达式>,对应的运算符为operator[ ],必须重载为一个成员函数。对于下标...
实验六函数重载与运算符重载 实验六函数重载与运算符重载
多态性和运算符重载
10.2 运算符重载的方法 10.3 重载运算符的规则 10.4 运算符重载函数作为类成员函数和友元函数 10.5 重载双目运算符 10.6 重载单目运算符 10.7 重载流插入运算符和流提取运算符 10.8 不同类型数据间的转换
10.2 运算符重载的方法 10.3 重载运算符的规则 10.4 运算符重载函数作为类成员函数和友元函数 10.5 重载双目运算符 10.6 重载单目运算符 10.7 重载流插入运算符和流提取运算符 10.8 不同类型数据间的转换
通过控制台输入输出,DOS窗口,以复数类为例,通过运算符重载成员函数的方式,实现复数类的加减法运算
这个是使用C++是实现的矩阵基本运算,使用了运算符重载技术和动态生成数组技术!
C++程序设计实验——运算符重载,涉及单目、双目运算符的重载
主要是C++中,运算符重载的编写的实验,环境VS2010,内容很基本,与类相关
运算符重载:友元(friend)函数问题
运算符重载(c++ 最会的重载100)
1、 编写一个简单复数类Scomplex,要求用友元函数重载“+”、“-”运算符,用成员函数重载“=”运算符,使之能够实现整数或浮点数和复数的加法和减法,并且进行测试。 2、空间一点p的坐标为(x,y,z),其中x,y,z为...
此课件内容包括: 1 运算符 2 运算符重载概述 3 运算符重载的两种形式(重点) 运算符是代表某种运算功能的符号。 课件中讲解的实例也在些文件中。
C++程序,利用运算符的重载在VC下编译。