博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运算符重载
阅读量:3948 次
发布时间:2019-05-24

本文共 1252 字,大约阅读时间需要 4 分钟。

1,定义

C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。

重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。

当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。

2,实例

以一个结构体为例,重载比较运算符和输出运算符,结构体包含学生姓名和学生分数。定义大小关系首先按照学生分数来比较,分数相等的按学生姓名首字母进行比较。定义输出为学生姓名和学生分数。

3,源码

添加头文件Student.h如下:

#ifndef STUDENT_H#define STUDENT_H#include 
#include
using namespace std;struct Student{ string name; int score; bool operator<(const Student& otherStudent){ return score != otherStudent.score ? score > otherStudent.score : name < otherStudent.name; } friend ostream& operator<<(ostream &os, const Student &student){ os<<"Student: "<
<<" "<
<

主程序如下:

#include 
#include "Student.h"using namespace std;template
void selectionSort(T arr[], int n){ for(int i = 0 ; i < n ; i ++){ int minIndex = i; for( int j = i + 1 ; j < n ; j ++ ) if( arr[j] < arr[minIndex] ) minIndex = j; swap( arr[i] , arr[minIndex] ); }}int main() { string c[4] = {"D","C","B","A"}; // 测试模板函数,传入字符串数组 selectionSort(c,4); for( int i = 0 ; i < 4 ; i ++ ) cout<
<<" "; cout<

转载地址:http://zlhwi.baihongyu.com/

你可能感兴趣的文章
Android LOG机制流程图
查看>>
如何在JNI中抛异常
查看>>
Android应用程序的完全退出
查看>>
Task和Activity相关的一些属性
查看>>
JAVA系统属性之user.home
查看>>
Android代码截屏
查看>>
Android中打印代码的调用层次
查看>>
成功者十三个价值连城的习惯
查看>>
特别成功的人会做6件事
查看>>
Android: 用jni 获取MAC地址
查看>>
字符串列表的C语言实现:c_strlist
查看>>
客户沟通的方式:礼貌待客沟通方式,技巧推广沟通方式,个性服务沟通方式
查看>>
用弹性工作制留住员工
查看>>
知识=经验×反思2
查看>>
领导者如何发现关键问题
查看>>
学习无为领导力
查看>>
卓越领导看过程
查看>>
领导力与各种循环挑战
查看>>
达成谈判协议 - 避免操之过急
查看>>
销售人说话“十大忌”
查看>>