c++的运算符的重载的代码
来源:互联网 发布:免费棋牌app源码 编辑:程序博客网 时间:2024/06/08 04:00
#include"iostream"
using namespace std;
class comp
{
public:
friend ostream& operator<<(ostream &out,comp &thi);
friend comp &operator+(comp &a,comp &b);//因为函数的是有属性,外界不能访问到,所以将这个函数声明为有元函数
friend comp &operator--(comp &a);//一元运算符的重载
comp(void);//这个是方便后面的创建对象不用给参数,当然你也可以改第二个构造函数的表示方式
comp(int a,int b){
this->a=a;
this->b=b;
}
~comp(){
cout<<"析构函数调用完毕"<<endl;
}
void printC(){//用来检验是否初始化了a和b这两个变量
cout<<"得到的a和b的值分别为:"<<a<<" "<<b<<endl;
}
//这个是前置的++运算
//以下是一元运算符的重载的情况
comp &operator++(){//comp这个类的属性值自加一
this->a++;
this->b++;
return *this;
}
//下面这个是后置的++运算
comp &operator++(int){//多添加一个占位符,编译器看到之后就会对这种情况进行判断
comp temp=*this;
this->a++;
this->b++;
return temp;//效果是先赋值在加一
}
//二元运算符的重载
//先将下面的重载注释掉,不然会出现多个重载的情况,导致编译器不知道使用哪一个重载的
//下面这个是成员函数的运算符的重载
// comp &operator+(comp &b){
// return *(new comp(this->a+b.a,this->b+b.b));
//}
private:
int a;
int b;
};
//输出运算符的重载
ostream& operator<<(ostream &out,comp &thi){//返回的当左值所以要返回为引用的类型
out<<"得到的a和b的值分别为:"<<thi.a<<" "<<thi.b;
return out;
}
//二元运算符的重载
//这个是全局函数的运算符的重载
comp &operator+(comp &a,comp &b){
return *(new comp(a.a+b.a,a.b+b.b));
}
comp &operator--(comp &a){//comp这个类的属性值自减一
a.a--;
a.b--;
return a;
}
void main(){
comp t1(1,2),t2(2,3);
comp t3=t1+t2;
t3.printC();
cout<<t1<<endl;
system("pause");
}
using namespace std;
class comp
{
public:
friend ostream& operator<<(ostream &out,comp &thi);
friend comp &operator+(comp &a,comp &b);//因为函数的是有属性,外界不能访问到,所以将这个函数声明为有元函数
friend comp &operator--(comp &a);//一元运算符的重载
comp(void);//这个是方便后面的创建对象不用给参数,当然你也可以改第二个构造函数的表示方式
comp(int a,int b){
this->a=a;
this->b=b;
}
~comp(){
cout<<"析构函数调用完毕"<<endl;
}
void printC(){//用来检验是否初始化了a和b这两个变量
cout<<"得到的a和b的值分别为:"<<a<<" "<<b<<endl;
}
//这个是前置的++运算
//以下是一元运算符的重载的情况
comp &operator++(){//comp这个类的属性值自加一
this->a++;
this->b++;
return *this;
}
//下面这个是后置的++运算
comp &operator++(int){//多添加一个占位符,编译器看到之后就会对这种情况进行判断
comp temp=*this;
this->a++;
this->b++;
return temp;//效果是先赋值在加一
}
//二元运算符的重载
//先将下面的重载注释掉,不然会出现多个重载的情况,导致编译器不知道使用哪一个重载的
//下面这个是成员函数的运算符的重载
// comp &operator+(comp &b){
// return *(new comp(this->a+b.a,this->b+b.b));
//}
private:
int a;
int b;
};
//输出运算符的重载
ostream& operator<<(ostream &out,comp &thi){//返回的当左值所以要返回为引用的类型
out<<"得到的a和b的值分别为:"<<thi.a<<" "<<thi.b;
return out;
}
//二元运算符的重载
//这个是全局函数的运算符的重载
comp &operator+(comp &a,comp &b){
return *(new comp(a.a+b.a,a.b+b.b));
}
comp &operator--(comp &a){//comp这个类的属性值自减一
a.a--;
a.b--;
return a;
}
void main(){
comp t1(1,2),t2(2,3);
comp t3=t1+t2;
t3.printC();
cout<<t1<<endl;
system("pause");
}
阅读全文
0 0
- 运算符+-*/的重载代码
- c++-运算符的重载
- C++--运算符的重载
- [C/C++]运算符的重载
- 高精度重载运算符的C++代码
- 运算符重载的实现代码
- C#-运算符的重载范例
- 【c++】实现运算符的重载
- [c++]复数的运算符重载
- 【C++】复数的运算符重载
- C++_运算符重载的注意事项
- 【C++】输入输出运算符的重载
- c++_类的运算符重载
- 【C++】C++运算符重载的规则
- C++_运算符重载的注意事项
- 运算符的重载:[],(),->;
- 运算符的重载
- 运算符的重载
- 类型别名的一些问题
- ScrollView嵌套RecycleView之后 recycleView惯性消失
- spring学习笔记(1)
- windows跨进程共享
- nmap基本使用方法
- c++的运算符的重载的代码
- NSValue的使用
- CSS选择器总结
- 字符串的全排列和组合算法
- HDU5927-Auxiliary Set
- java的面向对象基础
- hihoCoder 第157周 二进制小数
- Get 请求中文参数乱码解析
- Ubuntu下NFS服务器的搭建与配置