-
说起来比较麻烦,但我似乎还是很快明白了。 举一个简单的运算符重载的例子。 两点的加法和减法是超载的。
他使使用只能通过坐标进行数字使用的 +,- 运算成为可能。 点 x(1,1)+y(2,2)=z(3,3)以下是成功调试的示例。
#include
using namespace std;
class lyhdian
double x;
double y;
public:
lyhdian(double,double);
lyhdian operator +(lyhdian&);
lyhdian operator -(lyhdian&);
void show();
lyhdian::lyhdian(double a,double b)
x=a;y=b;
lyhdian lyhdian::operator +(lyhdian& a1)
double c=x+;
double d=y+;
lyhdian result(c,d);
return result;
lyhdian lyhdian::operator -(lyhdian& a1)
double c=;
double d=;
lyhdian result(c,d);
return result;
void lyhdian::show()
cout<<"该点的坐标为:"<>x>>y;
lyhdian aa(x,y);
cout<<"请输入另一个点的坐标:"<>x>>y;
lyhdian bb(x,y);
cout<<"在操作中添加了两点:"cout<<"减去两分:"
-
大多数 C++ 运算符都可以重载。 运算符重载是 C++ 多态性的一种形式。 运算符重载将重载的概念扩展到运算符,允许 C++ 运算符被赋予多种含义。
单目操作员过载:
单目运算符只有一个操作数,例如 ! a、-b、&c、*p 以及最常用的 ++i 和 --i 等。 由于单目运算符只有一个操作数,因此运算符仅使用一个参数重载函数,如果运算符将函数作为成员函数重载,也可以省略该参数。
下面以自动增量算子“++”为例,介绍单目算子的重载。
示例]有一个时间类,它包含数据成员分钟(分钟)和秒(秒),模拟秒表,每次走一秒,整整 60 秒前进到一分钟,秒从 0 开始。需要以分钟和秒为单位的值输出。
如您所见,运算符“++”在程序中已被重载,因此它可以用于时间类的对象。 “+ and” -- 运算符可以以两种方式使用,即前增运算符和后自动增量运算符。
鉴于“++ and”的特性,C++ 常规地在自动增量(自递减)算子重载函数中添加一个 int 类型形式参数,即后递增(自递减)算子函数。
双目操作员过载:
双目运算符或二进制运算符是 C++ 中最常用的运算符。 双目算子有两个操作数,通常在算子的左右两侧,如3+5、a=b、i<10等。 当重载双目算子时,不言而喻,函数中应该有两个参数。
Example] 定义了一个字符串类字符串来保存长度不定的字符串,并重载运算符 “==”, “and >” 以比较两个等于、小于和大于的字符串。
有了这个基础,添加其他必要的内容。 现在添加运算符重载的部分。 为了便于编写和调试,首先重载运算符“>”程序,如下所示:
程序的结果是 1。
这只是一个不太完整的程序,但已经完成了大量工作,并且操作员过载已经成功。 其他两个算子的过载也可以用同样的方式炮制。
int count=0;
count++;自加法的结果被赋值给 count,所以它是 count 的值变化,你输出 count++ >>>More
1. |它是逻辑运算中的“或”,逻辑关系为:true||False = 真 True ||True = 真 False |True = 真 False |False = 假。 >>>More
前两个程序是 ++i 和 i++ 之间的区别。
i。就是将i加一,然后进行运算,如i = 0,j = 0; j = ++i;最后 i = 1;j = 1;因为 i 加 1 先执行,j 在执行中赋值; >>>More