首页 > 编程语言 > 详细

C++ 关于重载问题:重载函数/重载运算符问题

时间:2020-02-26 22:06:48      阅读:85      评论:0      收藏:0      [点我收藏+]

老生常谈的问题,N年前仔细做过总结,现在全忘光了;

 

重载函数:

一定要参数列表不同,名字相同,C++编译器可以根据参数的类型自动调用;

void exc(char& a, char& b) {
	char temp = a;
	b = a;
	b = temp;
}

void exc(int& a, int& b) {
	int temp = a;
	a = b;
	b = temp;
}

void exc(string& a, string& b) {
	string temp=a;
	a = b;
	b = temp;
}

  

重载运算符:

重载运算符则是对运算符operator进行重载,方式固定,但是一定要注意什么时候用神马返回值,什么时候形参用引用传递;

还有要注意的是,重载的时候别瞎几把重载,要注意双目单目,并且是否可以被重载的问题;

#include<iostream>
#include<fstream>
#include<sstream>
#include<vector>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;

struct node {
    string s;
    int v;
};

node operator+(node a, node b) {
    cout << a.s + b.s << endl;
    node c;
    c.s = a.s + b.s;
    c.v = a.v + b.v;
    return c;
}

void operator++(node& a) {
    a.s = "wonderful";
    a.v = 1101;
}

int main(){
    node a, b;
    cin >> a.s >> a.v;
    ++a;
    cout << a.s << " " << a.v << endl;
    return 0;
}

 

C++ 关于重载问题:重载函数/重载运算符问题

原文:https://www.cnblogs.com/songlinxuan/p/12368226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!