C++ 中operator用法:隐式类型转换
来源:互联网 发布:予尚网络 编辑:程序博客网 时间:2024/05/22 02:44
C++中的operator主要有两个作用,一是操作符的重载,一是操作符的转换。对于操作符的重载,许多人都不陌生,用以下这个小例子温故一下:
class A{ public: A operator +(A& oa){A a;a.num=oa.num+num;return a;} int num;};int main(int argc,char* argv[]){ A a; a.num=1; A b; b.num=2; A c; c=a+b; cout<<"c.num: "<<c.num<<endl;}程序输出为:c.num: 3;很简单,也很容易理解。下面有必要系统说下operator算子的另一大功能 操作符的转换:operator T
语法很简单,在类的成员函数声明部分作出声明即可:
class A {public: ...... operator int(){return num;}; // 在需要情况下, A对象可以转成int类型对象。 ...... int num; };这条声明使得以下语句成立:
cout<<c+12<<endl; //其中c是A类型的对象
又发生了隐式的类型转换,这一次,我们可以直接用类的对象去生成一个其他的类型,是不是想到了构造函数的隐式类型转换部分呢?下面我们就来做一个小小的总结:
构造函数的隐式类型转换部分,使用一个其他的类型构造当前类的临时对象,这种转换必须有构造函数的支持;operator算子的隐式类型转换,使用当前对象去生成另一个类型的对象(正好与构造函数型相反),这种转换必须有operator算子的支持。
隐式的类型转换有利有弊,类的设计者就起决定性作用了,如果你不想让构造函数发生隐式的类型转换,请在构造函数前加explicit关键字;同时,operator算子声明的隐式类型转换也可以通过一些相应的返回值函数替代,用户的掌控性更好。
建议参考阅读本博客隐式类类型转换一文。
- 『C/C++』C++ 中operator用法:隐式类型转换
- C++ 中operator用法:隐式类型转换
- C++中Operator类型强制转换成员函数
- C++中Operator类型强制转换成员函数
- C++中Operator类型强制转换成员函数
- C++隐式类型转换 operator T
- C++隐式类型转换 operator
- C++中的operator操作符的用法:重载和隐式类型转换
- 隐式类型转换与转换操作符operator T
- 利用operator实现隐式类型转换的简单应用
- Operator运算符重载与Implicit隐式类型转换
- Operator运算符重载与Implicit隐式类型转换
- c语言中关于隐式类型转换的相关说明以及用法
- C++ operator 的用法 进行隐式转换
- operator类型转换函数
- 对operator的迷惑! 强制类型转换/隐式类型转换
- [C++再学习系列] 隐式类型转换与转换操作符operator T
- C++中Operator类型强制转换成员函数
- 主攻ASP.NET.4.5 MVC4.0之重生:可多选框数据存放
- Hibernate
- (四)工厂方法模式详解(另附简单工厂的死亡之路)
- 把图片转换成二进制--把二进制转换成图片(针对于数据库操作)
- Hibernate
- C++ 中operator用法:隐式类型转换
- 二维数组和指向指针的指针
- C# WPF 快速开发23代码生成器
- 桶排序
- CentOS+Nginx+PHP+MySQL详细配置(图解)
- Hibernate
- MySQL数据库调优之一
- vb吐槽班01 简直惊悚的数据库
- HDU1495:非常可乐(BFS)