面向对象的程序设计-8-运算符的重载-part1
来源:互联网 发布:鉴声师鉴声用什么软件 编辑:程序博客网 时间:2024/04/30 07:01
主要讲下运算符的重载/
/*@为要重载的运算符的符号,operator是关键字。其中的关键字和重载运算符组成
可函数名。运算符被重载之后,原来的意思尚在,只是定义了相对一特定类的一个新的
运算符。
需要注意的事项时运算符重载是公有的*/
#include <iostream>
using namespace std;
class counter
{
unsigned int value;
public:
counter(){value=0;}
void operator ++();
void operator --();
unsigned int operator() ();//此处的重载运算符是()
};
void counter::operator++()
{
if(value<65535)
value ++;//测试下是否需要紧靠着
}
void counter::operator--()
{
if(value>0)
value--;
}
unsigned int counter::operator()()
{
return value;
}
void main()
{
counter my_counter;
for(int i=0;i<12;i++)
{
my_counter ++;
cout<<"\n my_counter="<<my_counter();
}
my_counter--;
my_counter--;
cout<<"\n my_counter="<<my_counter();
}
/*运算符重载时候,运算符函数只能是类的成员函数或者是友元函数
两者的区别在于:成员函数具有this指针,而友元函数没有this指针。
所谓的一元运算符,不论是前缀还是后缀,都需要一个操作数。
如a @ 及@ a 其中的a是重载运算符@的类的对象
可以解释为a.operator @() 或者operator @(a)
可以简单地解释为a.operator @()一元运算符函数operator @ 所需的
一个操作数由对象a通过this指针隐含地传递,所以参数列表为空。此时,
运算符函数用类的成员函数表示。
若是operator @(a)则一元运算符函数operator @所需的一个操作数
在参数列表中由对象显式地提供,适用于没有使用this指针的情况。
这时的运算符函数用类的友元函数表示。
对于二元运算符: a@b
可以解释为a.operator @(b) 或者operator @(a,b)
其中的a.operator @(b)可以解释为二元运算符函数 operator @
所需的一个操作数由对象a通过this指针隐含地传递。故只有一个参数
此时的运算符函数是成员函数
若是operator @(a,b)所需要的操作数在参数列表中由对象a和对象b显式
提供,适用于没有this指针的情况。此时的运算符函数用类的友元函数表示
注意对于 = ,(),[],->运算符只能使用成员函数重载*/
- 面向对象的程序设计-8-运算符的重载-part1
- 面向对象的程序设计学习笔记-10-[]下标运算符的重载-part1
- 面向对象的程序设计-8-运算符重载-part2
- 面向对象的程序设计-8-运算符重载-part3
- 面向对象的程序设计-10-()的运算符重载
- 面向对象的程序设计-9-赋值运算符重载
- 面向对象的程序设计-12-类型转换和运算符重载的实例
- C++面向对象程序设计(谭浩强)阅读笔记3——关于运算符的重载
- 【面向对象程序设计常见面试题】运算符重载的三种方式?(7)
- 面向对象的程序设计-5-多态性和虚函数-part1
- 面向对象程序设计上机练习十(运算符重载)
- 面向对象程序设计上机练习十二(运算符重载)
- 面向对象程序设计上机练习十一(运算符重载)
- 面向对象程序设计上机练习十(运算符重载)
- 面向对象程序设计上机练习十(运算符重载)
- 面向对象程序设计上机练习十一(运算符重载)
- 面向对象程序设计上机练习十二(运算符重载)
- 面向对象程序设计上机练习十(运算符重载)
- Redis虚拟内存介绍
- c/c++实现利用二叉树的先序遍历和中序遍历序列重建树
- VC++实现枚举进程与模块
- 张桐《上阵父子兵》首度与范伟合作 受益匪浅
- 在Mac OS X中配置Apache + PHP + MySQL
- 面向对象的程序设计-8-运算符的重载-part1
- VC++实现U盘开机锁
- 评论-《喜剧的忧伤》上演 陈道明为什么不动人
- 标准strcpy函数
- 面向对象的程序设计-8-运算符重载-part2
- 《红娘子》北京热拍 王珞丹变大家闺秀首演年代剧
- 基于Windows8与Visual Studio11开发第一个USB驱动应用程序
- 王小毅《四川往事》再陷大时代 演绎跌宕人生
- 从事PHP开发的一点经验