当前位置: 首页 > news >正文

重载操作类型

 类转换操作符定义

//函数格式
operator type(){
return type_value; // 类型要和type 一致。
}
//函数在写法上无参数,无返回值,但函数体中应该有return,且return的变量类型要和
//重载的类型一致。如果同时存在重载操作符和重载类型,那么优先匹配重载的操作符。

 转换int类型

operator int(){int a=10;return a;
}

 显示调用类型转换运算符

#include <iostream>
using namespace std;class CTest {
public:int m_a;// 构造函数,初始化 m_a 为 10CTest() : m_a(10) {}// 类型转换运算符,将 CTest 对象转换为整型operator int() {return m_a; // 返回 m_a}
};int main() {CTest tst; // 创建 CTest 实例// 显式调用类型转换运算符int a = tst.operator int() + 10; // 调用类型转换运算符cout << "a: " << a << endl; // 输出 a: 20return 0;
}

示例:

#include <iostream>
using namespace std;class CTest {
public:int m_a; // 类的成员变量// 构造函数,初始化 m_a 为 10CTest() {m_a = 10;}// 类型转换运算符,将 CTest 对象转换为整型operator int() {return m_a;}// 注释掉的运算符重载/*int operator+(int a) {return this->m_a + a;}*/
};int main() {CTest tst; // 创建 CTest 类的实例// 由于没有重载 `operator+`,所以会调用类型转换int a = tst + 10; cout << a << endl; // 输出结果是 20// 明确调用类型转换运算符int b = tst.operator int() + 20; cout << b << endl; // 输出结果是 30// 30 + tst 只会调用类型转换运算符int c = 30 + tst; cout << c << endl; // 输出结果是 40return 0;
}

http://www.dtcms.com/a/283371.html

相关文章:

  • 向量数据库Faiss vs Qdrant全面对比
  • ESP32——快速入门
  • 【深度学习】学习算法中为什么要使用“小批量随机”
  • 前后端分离项目中的接口设计与调用流程——以高仙机器人集成为例
  • CSS动画与变换全解析:从原理到性能优化的深度指南
  • JAVA同城自助羽毛球馆线上预约系统源码支持微信公众号+微信小程序+H5+APP
  • HugeGraph 【图数据库】JAVA调用SDK
  • 助力品牌从系统碎片化走向IT一体化建设,实现全渠道业务协同!——商派“数智化IT轻咨询”
  • MH32F103A单片机 可兼容替代STMCCT6/RCT6/RBT6,增强型
  • Kotlin重写函数中的命名参数
  • 【论文阅读】A Survey on Knowledge-Oriented Retrieval-Augmented Generation(4)
  • 【Android】CheckBox实现和监听
  • 归一化与激活函数:深度学习的双引擎
  • CentOS网络配置与LAMP环境搭建指南
  • Product Hunt 每日热榜 | 2025-07-16
  • 计算机网络——数据链路层(25王道最新版)
  • Oracle 关于一些连接故障的总结
  • xss1-8
  • Traefik 中实现流量治理3种方式和场景选择
  • AI Agent 入门与概览
  • VLAN实验(2)
  • 需求分析方法论
  • unity中利用Curvy Spline插件实现简单的可视化路径
  • 猎板分享:印制线路板制造工艺的创新与质量管控新策略
  • STM32 GPIO的八种工作模式
  • Python暑期学习笔记一
  • Swift基础 -- 3、协议和扩展、错误处理、范型
  • 宇树 G1 部署(七)——系统重装与镜像还原
  • 第13章 AB实验平台的建设
  • Redis原理和应用以及整合SpringBoot+Vue