C++ 运算符与函数的重载

函数的重载:

参数个数、类型或顺序不同函数都可以当做不同的函数来进行声明与使用 (函数的类型不能作为判断依据);

举个例子:Print(int X)和Print(int X, int Y) 表示的是两个函数,这种使用方法就叫做函数的重载;

运算符的重载 (本文主要探讨) :

1> 一元运算符:!、++/--、-(负号)      (文章最后介绍单目运算符的重载)

2> 二元运算符:+、-、*、/

3> 输入输出运算符:<< 、>>

4> 下标运算符:[ ]

 

本文将主要讲到:+(加法运算符)<</>>(输入输出运算符)[ ](下标运算符) 以及单目运算符++ 的重载。



一:乘法运算符的重载("+"*10

#include<iostream>
using namespace std;

class Str{
	private:
		string temp;
		string data;
	public:
		Str(){
			temp = "";
		}
		Str(string x){
			temp = x;
			data = "";
		}
		string operator*(int count){
			for(int i=0;i<count;i++){
				data+=temp;
			}
			return data;
		}
};

int main(){
	string a = Str("+")*30;
	cout << a << endl;
	return 0;
}

 

二:加法运算符的重载

  实现两个复数的相加:

#include <bits/stdc++.h>
using namespace std;

class Complex_num
{
	public:
		Complex_num()
		{
			a = 0;
			b = 0;
		}
		Complex_num(int aa, int bb)
		{
			a = aa;
			b = bb;
		}
		Complex_num(Complex_num &C)
		{
			a = C.a;
			b = C.b;
		}
		void Print()
		{
			cout << a << "i+" << b << "j" << endl;
		}
		Complex_num operator + (Complex_num &C)
		{
			Complex_num c_temp;
			c_temp.a = this->a + C.a;
			c_temp.b = this->b + C.b;
			return c_temp;
		}
	private:
		int a,b;		
};

int main()
{
	Complex_num C1(12,14);
	Complex_num C2(C1);
	Complex_num C3;
	C1.Print();
	C2.Print();
	C3 = C2 + C1;
	C3.Print();
	return 0;
} 

 注意事项:

 注意+运算符重载的语法

 

 

二:输入/输出运算符的重载

还是拿上面那个例子继续举例:

#include <bits/stdc+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值