【菜鸟C++学习笔记】27.通过operator关键字进行类型转换
来源:互联网 发布:大学生网络交流平台 编辑:程序博客网 时间:2024/05/18 13:48
在前面说过通过构造函数实现类型的转换,即把数字通过构造函数赋值给一个临时对象,然后把这个临时对象赋值给创建好的对象,实现数值->对象的转换。
这里再说下operator关键词+转换类型构成的重载运算符函数,例如:
operator int()
先定义好转换函数后,下面创建对象:
A a(1)
cout<<int(a)
第一行创建一个对象,并把成员赋值为1,第二行调用转换函数,调用的结果不是返回对象,而是返回对象的数据成员的值,完成程序如下:
#include <iostream>using namespace std;class A{public:A(){n=0;cout<<"执行不带参数的构造函数"<<endl;}A(int i){n=i;cout<<"执行带一个参数的构造函数"<<endl;}A(A const &r){n=r.n;cout<<"执行复制构造函数"<<endl;}~A(){cout<<"析构函数调用"<<endl;}void get() const {cout<<n<<endl;}void set(int x){n=x;}operator int(){return n;}private:int n;};int main(){A a(100);cout<<"调用get函数得到a:";a.get();cout<<"int(a):"<<int(a)<<endl;cout<<"(a):"<<(a)<<endl;cout<<"a:"<<a<<endl;return 0;}
输出结果:
分析:
注意定义的operator int()函数虽然没有定义返回值,但它却返回了成员变量n的值,同时可以看到,在21到23行定义了三种调用类型转换函数的方法。
operator转换类型函数的作用:把一个对象转换为int型变量;
比较构造函数的转换作用:把一个变量的值转换为一个对象;
- 【菜鸟C++学习笔记】27.通过operator关键字进行类型转换
- C++ 转换类型运算符 通过operator关键字进行转换
- C#学习笔记-operator关键字
- 通过类型转换函数进行类型转换
- 类型转换的关键字explicit、implicit 和 operator
- C++学习笔记,显示类型强制转换,关键字static_cast
- C/C++学习笔记28:类型转换
- C++primer学习笔记-----4.11类型转换
- operator类型转换函数
- C++ template学习笔记之禁止进行自动类型转换
- C++中Operator类型强制转换成员函数
- C++中Operator类型强制转换成员函数
- C++中Operator类型强制转换成员函数
- operator用于类型转换函数
- operator 类型转换及重载
- operator 类型转换及重载
- C语言学习笔记03赋值类型转换
- 黑马程序员--C语言里的类型转换学习笔记
- iphone使用GDataXMLParser解析xml文件小结
- 梅花易术-推算
- 向老板举荐朋友之前需考虑的12件事
- php学习 第六十节
- 《启示录——打造用户喜爱的产品》
- 【菜鸟C++学习笔记】27.通过operator关键字进行类型转换
- jsp中播放视频
- IE9 无法加载CSS样式
- Linux 命令记录
- 成功的那些法则
- 《Android系统学习》第五章:编译Android的JDK环境
- 淘宝技术发展(Java时代:坚若磐石)
- SVN常用命令
- 2012-半年工作总结