
C++运算符重载转换运算符
发布时间:2006-05-05 19:02:37 来源:网易学院 网友评论 0 条
为什么需要转换运算符?
我们大家知道对于内置类型的数据我们可以通过强制转换符的使用来转换数据,例如(int)2.1f;自定义类也是类型,那么自定义类的对象在很多情况下也需要支持此操作,C++提供了转换运算符重载函数,它使得自定义类对象的强转换成为可能。
转换运算符的生命方式比较特别,方法如下:
operator 类名();
转换运算符的重载函数是没有返回类型的,它和类的构造函数,析构函数一样是不遵循函数有返回类型的规定的,他们都没有返回值。
下面我看一个例子,看看它是如何工作的:
在例子中我们利用转换运算符将Test类的对象强转换成了int类型并输出,注意观察转换运算符函数的运行状态,发现并没有产生临时对象,证明了它与普通函数并不相同,虽然它带有return语句。
在很多情况下,类的强转换运算符还可以作为类对象加运算重载函数使用,尽管他们的意义并不相同,下面的例子,就是利用转换运算符,将两个类对象转换成int后,相加并创建临时类对象,后再赋给另一个对象。
代码如下
代码中的c=a+b;属于隐式转换,它的实现过程与c=Test((int)a+(int)b);完全相同。
运行结果如下图示(注意观察内存地址,观察构造与析构过程,执行过程图中有解释):
推荐阅讯
- Windows Sockets:背景知识
- VC++编程实现网络嗅探器
- Windows Sockets:字节排序
- C++中class与struct的区别
- C++/VC++编程的疑难问题及解答
- 把其他C/C++编译器集成到VC2005中
- c++中关于堆内存(heap)的概念和操作方法的教
- Visual C++设计UDP协议通讯示例
- 明晰C++内存分配的五种方法的区别
- C++远程关机API的学习过程
阅读排行
- 1.Borland 发布C++ Builder 2006 RAD 环境
- 2.C/C++程序员应聘常见面试题深入剖析
- 3.Visual C++常用数据类型转换详解
- 4.C++中的 static 关键字
- 5.利用VC++实现局域网实时视频传输
- 6.浅谈C/C++内存泄漏及其检测工具
- 7.英国投票否决C++/CLI 微软强攻ISO标准受挫
- 8.VC++下用MSComm控件实现串口通讯
- 9.伪随机数生成及在VC++中的实现
- 10.VC++编程实现对波形数据的频谱分析
专题教程
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
