提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、加号运算符
- 二、左移运算符
- 三.递增或者递减运算符
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
例如:C++运算符重载
提示:以下是本篇文章正文内容,下面案例可供参考
一、加号运算符
完成自定义类型加号运算符
使用成员函数和全局函数都可以完成
#include<iostream>
using namespace std;
#include<string>
/*函数运算符重载*/class Operate
{
private:/* data */
public:Operate(/* args */);~Operate();Operate(int a, int b) {this->m_numa = a;this->m_numb = b;}//成员函数方式// Operate operator+(Operate &temp1) {// Operate temp;// temp.m_numa = this->m_numa+temp1.m_numa;// temp.m_numb = this->m_numb+temp1.m_numb;// return temp;// }int m_numa;int m_numb;
};Operate::Operate(/* args */)
{
}Operate::~Operate()
{
}
//全员函数方式
Operate operator+(Operate &temp1,Operate &temp2) {Operate temp;temp.m_numa = temp1.m_numa + temp2.m_numa;temp.m_numb = temp1.m_numb + temp2.m_numb;return temp;
}
//运算符 函数重载
Operate operator+(Operate &temp1, int b) {temp1.m_numb = temp1.m_numb + b;return temp1;
}
int main()
{Operate p1(10, 10);cout << "numa = "<< p1.m_numa << endl;cout << "numb = "<< p1.m_numb << endl;Operate p2(10, 10);cout << "numa = "<< p2.m_numa << endl;cout << "numb = "<< p2.m_numb << endl;Operate p3 = p1 + p2;cout << "numa = "<< p3.m_numa << endl;cout << "numb = "<< p3.m_numb << endl;}
二、左移运算符
目的:为了可以直接实现cout输出一个对象。
只能使用全局函数实现
class Operate
{friend ostream & operator<<(ostream &cout,Operate &temp);
private:/* data */
public:Operate(/* args */);~Operate();Operate(int a, int b) {this->m_numa = a;this->m_numb = b;}//成员函数方式// Operate operator+(Operate &temp1) {// Operate temp;// temp.m_numa = this->m_numa+temp1.m_numa;// temp.m_numb = this->m_numb+temp1.m_numb;// return temp;// }int m_numa;int m_numb;
};ostream & operator<<(ostream &cout,Operate &temp) {cout <<"numa = "<<temp.m_numa << " numb = " << temp.m_numb ;return cout;
}
三.递增或者递减运算符
代码如下(示例):
class Myprint
{
private:/* data */int M_a;
public:Myprint(/* args */);Myprint(int a){this->M_a = a;}~Myprint();//前置++返回引用,为了操作是同一个对象Myprint& operator++() {this->M_a++;return *this;}//后置++返回值,int 是占位符,函数重载的条件Myprint operator++(int) {Myprint temp = *this;this->M_a++;return temp;}//前置--返回引用,为了操作是同一个对象Myprint& operator--() {this->M_a--;return *this;}//后置--返回值,int 是占位符,函数重载的条件Myprint operator--(int) {Myprint temp = *this;this->M_a--;return temp;}friend ostream & operator<<(ostream &cout, Myprint temp);
};Myprint::Myprint(/* args */)
{
}Myprint::~Myprint()
{
}ostream & operator<<(ostream &cout, Myprint temp) {cout << temp.M_a;return cout;
}
int main()
{Myprint a(10);cout << a << endl;//++ testcout << ++a << endl;cout << a << endl;cout << a++ << endl;cout << a << endl;//-- testcout << --a << endl;cout << a << endl;cout << a-- << endl;cout << a << endl;
}
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。