7.C++重载

C++重载

重载是同一个函数名,根据传入参数的不同,实现不同的功能,比如长方形只有长、宽,长方体有长、宽、深。当调用同一个求面积函数时,会根据参数的个数不同,返回调用不同的实现。

重载的特点(函数的名称相同,返回值不能作为重载特点):

  • 参数类型不同
  • 参数个数不同
  • 参数顺序不同

示例:(长方形与长方体的面积)

Retangle.h

class Retangle{
	private:
		int width;
		int high;
	public:
		Retangle(int,int);
		int area();
		int area(int);
};

Retangle::Retangle(int pwidth,int phigh){
	width = pwidth;
	high = phigh;
}

int Retangle::area(){
	return width*high;
}

int Retangle::area(int pside){
	return (width*high*2)+(width*pside*2)+(high*pside*2);
}

main.cpp

#include <iostream>
#include "Retangle.h"
using namespace std; 

int main(){
	int area,areaT;
	Retangle r(10,20);
	area = r.area();
	areaT = r.area(5);
	cout << "长方形面积:" << area << endl;
	cout << "长方体面积: " << areaT << endl;
	return 0;
}

重载系统运算符+

对两个坐标点相加

示例:

Point.h

class Point{
	private:
		int x;
		int y;
	public:
		Point(int a,int b){
			x = a;
			y = b;
		}
		Point operator +(Point p2){
			return Point(x + p2.getX(),y + p2.getY());
		}
		int getX(){
			return x;
		}
		int getY(){
			return y;
		}
		
};

main.cpp

#include <iostream>
#include "Point.h"

using namespace std;

int main(){
	Point p1(1,2);
	Point p2(2,3);
	Point p3 = p1+p2;
	cout << "新坐标:"<< p3.getX() << ","<<  p3.getY() << endl;
	return 0;
}
posted @ 2025-06-27 20:04  站着说话不腰疼  阅读(24)  评论(0)    收藏  举报