码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-02-26 18:59:29      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:cto   clu   code   现在   return   固定   temp   自动   cstring   

老生常谈的问题,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++ 关于重载问题:重载函数/重载运算符问题

标签:cto   clu   code   现在   return   固定   temp   自动   cstring   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!