目录
重载字面量运算符简单示例
何为字面量?
字面量说白了就是“常量”,要实现常量之间的转换,那就必须要用到“重载字面量运算符”,自定义常量之间的转换关系。例如:有一个int型的量temp=32摄氏度,要把它转化为绝对温度temp1,那就必须重载一下字面量运算符。
示例说明
#include <iostream>
using namespace std;
long double operator""_C(long double Kevin) // “”是为了给long double型的数据留位置,使得最终输入的数字可以是”89_C”形式的
{
return Kevin + 273;
}
int main()
{
long double temp = 18.0_C;
cout << "开尔文温度为" << temp << endl;
}
注:我们这里用_C来表示普通温度
对字符串进行操作
代码示例
#include <iostream>
#include <string>
// n为函数的隐含参数,用于传递字符串的大小,size_t是size type的缩写,代表了unsigned int,用于存储变量的大小
std::string operator ""_heima(const char *sz, size_t n) { // 自定义的_heima运算符
std::cout << "执行了operator函数:" << sz << " " << n << std::endl;
return std::string{ sz, n };
}
int main()
{
// 实际上函数传入两个参数”test literal"字符型数组与12数组的大小(隐含传入参数)
std::string str2 = "test literal"_heima;
std::cout << "输出:" << str2 << std::endl;
}
输出结果