operator 是 C++ 的(运算符的)重载操作符。用作扩展运算符的功能。
它和运算符一起使用,表示一个运算符函数,理解时应将 【operator+运算符】 整体上视为一个函数名。
要注意的是:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。
使用时:
【返回类型】 【operator+运算符】 (const ElemType&a)const {...}
为什么需要重载操作符?
系统的所有操作符,一般情况下,只支持基本数据类型和标准库中提供的class。
而针对用户自己定义的类型,如果需要其支持基本操作,如’+’,‘-’,‘*’,‘/’,‘==’等等,则需要用户自己来定义实现(重载)这个操作符在此新类型的具体实现。
例:
创建一个point类并重载‘+’,‘-’运算符;
1 struct point 2 { 3 double x; 4 double y; 5 point() {}; 6 //初始化 7 point(double a,double b) 8 { 9 x = a; 10 y = b; 11 }; 12 //重载+运算符 13 point operator + (const point& a) const 14 { 15 return point (x+ a.x, y+ a.y); 16 } 17 //重载-运算符 18 point operator - (const point& a)const 19 { 20 return point(x-a.x, y-a.y); 21 } 22 };
检验;
1 int main() 2 { 3 point w(2, 6), v(5, 3); 4 printf("w与v的坐标分别为:\n"); 5 printf("w = (%.2f, %.2f)\nv = (%.2f, %.2f)\n", w.x, w.y, v.x, v.y); 6 point z = w+ v; 7 printf("w+v 的值z = (%.2f, %.2f)\n", z.x, z.y); 8 z = w- v; 9 printf("w-v 的值z = (%.2f, %.2f)\n", z.x, z.y); 10 return 0; 11 }
检验结果;
end;
重载操作符 'operator'
原文地址:https://www.cnblogs.com/Amaris-diana/p/10289937.html
时间: 2024-11-05 14:59:59