首页 / C++ / c++函数重载与运算符重载
c++函数重载与运算符重载
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++函数重载与运算符重载,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1802字,纯文字阅读大概需要3分钟。
内容图文
![c++函数重载与运算符重载](/upload/InfoBanner/zyjiaocheng/710/1dd12adfda7445a6b37dc36ac208104c.jpg)
文章目录
重载:同一件事情可能因为场景不同,我们需要有不同的处理方式,比如2维求距离和3维求距离
函数重载
相同名字,不同参数的函数 注意:函数重载只看参数个数和类型
- C++允许我们对函数进行重载。用不同的参数来区分重载的函数
- 编译器会判断我们传入的参数来寻找正确的函数,这个过程叫重载决策
- 利用函数重载我们可以写适应不同输入的函数,简化我们的函数的调用过程
- 重载不需要特别的形式说明,只需要写两个名字相同,参数不同的函数即可
函数重载只看参数个数和类型,不看返回值
但不能出现只是返回值不同的重载
如
int biggest(int a,int b);
{
...
}
float biggest(int a,int b)
{
...
}
运算符重载
很多时候我们需要我们自己定义的类也能够支持运算符的操作
类外定义重载操作符的方法如下:
返回类型 operator操作符(参数表) {
…
return 返回类型
}
参数表可以是类Human,可以是int, string等等
#include <iostream>
#include <string>
using namespace std;
// 函数重载
double add(int a, int b) {
return a + b;
}
double add(int a, string s) {
int n = s.size();
return a * n;
}
int add(int a, int b, int c) {
return a + b + c;
}
class Human {
public:
Human() {
}
Human(int age)
: age_(age) {
}
// Get/Set函数
int get_age() {
return age_;
}
void set_age(int age) {
age_ = age;
}
private:
string name_;
int age_;
};
// 运算符重载
int operator-(Human A, Human B) {
return A.get_age() - B.get_age();
}
Human operator&(Human A, Human B) {
return Human(A.get_age() + B.get_age()); // 要有对应的构造函数
}
int main() {
// 调用方法 对象名.成员名
Human lihua(30), hanmeimei(28);
// Human temp = lihua & hanmeimei 也可以暂存返回值
cout << "父母年龄和(add函数重载1): " << add(lihua.get_age(), hanmeimei.get_age()) << endl;
cout << "父母年龄和(运算符重载&): " << (lihua & hanmeimei).get_age() << endl;
cout << "父母年龄差(运算符重载-): " << lihua - hanmeimei << endl;
cout << endl;
cout << "add函数重载2: " << add(4, "we") << endl;
cout << "add函数重载3: " << add(1, 2, 3) << endl;
return 0;
}
内容总结
以上是互联网集市为您收集整理的c++函数重载与运算符重载全部内容,希望文章能够帮你解决c++函数重载与运算符重载所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。