2023年7月19日,周三晚上:
今天晚上看源码的时候,突然在某个类里面看到了“operator bool() const;”,我完全想不起来这是啥意思了,于是今晚重新学习了一下
目录
- 类型转换函数的定义
- 类型转换函数的作用
类型转换函数的定义
类型转换函数,也称作类型转换运算符重载函数
其语法格式为:
operator 数据类型名()
{//函数体
}
所以,我今晚遇到的那行代码实际上是类型转换函数
需要注意的是:
- 类型转换函数是类的成员函数,必须在类中定义
- 可以在一个类中重载多个类型转换函数,但数据类型名必须不同
类型转换函数的作用
用来实现自定义类与基本数据类型之间的转换
比如说,把一个对象转换成int或者char*
#include<iostream>
using namespace std;class Person{int age;char *name;public:Person(int age,char *name){this->age=age;this->name=name;}//把对象转换成int类型的数据operator int(){return this->age;}//可以在一个类中重载多个类型转换函数,但数据类型名必须不同//把对象转换成char*类型的数据operator char*(){return this->name;}};int main(){Person JuLongZhiLu(25,"巨龙之路");char *name=JuLongZhiLu;//把对象转换成char*int age=JuLongZhiLu;//把对象转换成intcout<<"name="<<name<<" "<<"age="<<age;
}