news 2026/4/16 14:26:18

C++仿函数与转换函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++仿函数与转换函数

在初学过程中,发现容易混淆仿函数和转换函数,故在此次进行记录。

仿函数:又称函数对象,是一个重载了operator()的类的实例。它的核心目的是行为模拟,让对象可以像函数一样被调用。

// 定义一个仿函数,用于判断一个数是否是偶数 class IsEven { public: bool operator()(int number) const { // 重载 (),注意:不能用static修饰! return (number % 2 == 0); } }; int main() { std::vector<float> vec = {1, 3, 4, 5, 6}; IsEven isEven; int evenCount = std::count_if(vec.begin(), vec.end(), isEven); // 使用 std::count_if 算法 qDebug() << "偶数个数:" << evenCount; return 0; } 程序输出:偶数个数: 2

转换函数:又称类型转换运算符,是一种特殊的成员函数,它允许一个类的对象被隐式或显式地转换为另一种类型。

// 定义一个转换函数类 class TransFunc { public: TransFunc(int num, int denom) : m_numerator(num) , m_denominator(denom) {} // 定义一个转换函数,将 TransFunc对象转换为double operator double() const { return static_cast<double>(m_numerator) / m_denominator; } private: int m_numerator; int m_denominator; }; // 打印double类型数据 void printDouble(double d) { std::cout << "The value is: " << d << std::endl; } int main() { TransFunc t(1, 2); // 1/2 // 显式转换 double d = static_cast<double>(t); // d 将会是 0.5 std::cout << "Explicit cast: " << d << std::endl; // 隐式转换:printDouble 函数需要一个 double, // 编译器发现 Rational 有一个到 double 的转换函数,于是自动调用它 printDouble(t); // r 被隐式转换为 0.5 并传递给函数 return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 6:25:09

14、绿色移动云计算安全框架解析

绿色移动云计算安全框架解析 一、引言 智能手机和平板电脑等移动技术正变得越来越重要,因为高效的计算和有益的通信方式不受时间和地点的限制。这些设备正通过采用云计算平台或移动云服务,逐步取代笔记本电脑或台式机系统。移动云计算(MCC)是云计算和移动计算的结合,数据…

作者头像 李华
网站建设 2026/4/12 10:49:34

25、基于6G的物联网绿色移动边缘计算

基于6G的物联网绿色移动边缘计算 1. 引言 5G及5G之后(B5G)的移动通信框架是当今世界新兴的通信框架。众多设备和管理系统参与到现代通信以及计算框架的发展中。云、边缘和雾计算范式的引入,使通信和计算系统更加高效。这种分层计算的优势在于能优化能源和资源的利用。 在…

作者头像 李华
网站建设 2026/4/12 10:14:02

揭秘Mammoth.js:从Word文档到HTML的架构智慧

揭秘Mammoth.js&#xff1a;从Word文档到HTML的架构智慧 【免费下载链接】mammoth.js Convert Word documents (.docx files) to HTML 项目地址: https://gitcode.com/gh_mirrors/ma/mammoth.js 在数字化办公的浪潮中&#xff0c;文档格式转换一直是技术团队面临的痛点之…

作者头像 李华
网站建设 2026/4/16 9:31:26

30、绿色移动云计算的新研究方向

绿色移动云计算的新研究方向 1. 绿色车载移动云计算 当人们出行时,车辆有时会陷入交通拥堵。此时,访问互联网服务进行娱乐是一种常见的选择。为满足这一需求,车载自组织网络、移动网络和云计算相结合,形成了车载移动云计算(Vehicular - MCC)。车辆需要将自身位置信息更…

作者头像 李华
网站建设 2026/4/16 13:52:02

基于SSM的宠物领养管理系统【2026最新】

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

作者头像 李华
网站建设 2026/4/15 12:11:33

B站视频下载工具配置与使用详解

B站视频下载工具配置与使用详解 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 本文将详细介绍如何配置和使用B站视频下载工具&#x…

作者头像 李华