ISO C++ operator+ 重载方法
来源:互联网 发布:淘宝模特照相视频 编辑:程序博客网 时间:2024/06/05 22:35
在Linux下G++ 使用的是ISO C++这与我们在网上找到的很多基于Windows VC的C++在operator操作符重载上有一定不同,通过这几天自己摸索写下Linux ISO C++ operator+操作符重载实现.
在这里我提供了一个实例如下:
1.我们需要实现类似于:Class A = Class B + int;
Class A = Class B + Class C;
Class A = int + Class B;这样的功能.
2.第一和第二种情况比较容易实现,方法和VC下基本一致,可以通过下面的方式实现:
<类> operator+ (const int) const;
<类> operator+ (cosnt 类&) const;
3.第三类情况实现和VC++ 有区别,我是通过下面的方法实现的:
friend <类> operator+ (const int,const <类>&);
注意这里friend后的类只能使用传值的方式,不能使用传址或引用的方式,否则会出现参数个数使能是0个或1个的错误.
在写函数实现部分时需写成
<类> operator+ (const int value_left,const <类>& value_right){ ... }
否则会提示这个实现的函数没有在<类>中声明.
通过这样的重载我们就可以实现第三种情况了,这种情况一样适用于其他双目运算符重载.
在这里我提供了一个实例如下:
1.我们需要实现类似于:Class A = Class B + int;
Class A = Class B + Class C;
Class A = int + Class B;这样的功能.
2.第一和第二种情况比较容易实现,方法和VC下基本一致,可以通过下面的方式实现:
<类> operator+ (const int) const;
<类> operator+ (cosnt 类&) const;
3.第三类情况实现和VC++ 有区别,我是通过下面的方法实现的:
friend <类> operator+ (const int,const <类>&);
注意这里friend后的类只能使用传值的方式,不能使用传址或引用的方式,否则会出现参数个数使能是0个或1个的错误.
在写函数实现部分时需写成
<类> operator+ (const int value_left,const <类>& value_right){ ... }
否则会提示这个实现的函数没有在<类>中声明.
通过这样的重载我们就可以实现第三种情况了,这种情况一样适用于其他双目运算符重载.
- ISO C++ operator+ 重载方法
- C++operator重载问题
- [C++]operator--重载
- c++---operator重载++,--
- 奇怪的C++operator重载
- C++(7) 函数重载/operator
- ISO C++ operator= 重载的一点经验
- 2.c++-重载运算符operator
- C++,重载输出操作符<<, cout.operator()
- 【C++】operator关键字(重载操作符)
- implicit operator返回相同方法重载
- 重载Operator ++
- operator++ 重载
- operator << >>重载
- operator重载
- operator <<重载
- ISO C++ operator 重载类型转换时对指针的重要约束!
- C/C++——operator new 重载 & 单例模式
- VC++6.0中工作区和工程的区别
- 【MCTS】Application Development Foundation 学习笔记---
- 分布式搜索引擎的研究
- 技术、工作、发展
- RJ-48 和RJ-45 的区别
- ISO C++ operator+ 重载方法
- .NET代码执行顺序探讨
- 增加MsFlexGrid的编辑功能
- 理解C语言位域
- BW--ABAP to copy aggregates from one cube to another
- 使用Twisted的adbapi操作数据库
- [转]spring声明式事务管理祥述
- 转:Spring中ref local与ref bean区别
- 如何打造安全的Web站点