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;//把对象转换成int
cout<<"name="<<name<<" "<<"age="<<age;
}