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;
}

浙公网安备 33010602011771号