news 2026/1/16 11:15:55

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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/16 8:04:39

11、绿色移动云计算中的多标准卸载决策

绿色移动云计算中的多标准卸载决策 1. 灰色关联分析相关研究 灰色关联度已被用于表示参考序列和可比序列。邓聚龙提出了灰色关联分析(GRA)来处理模糊性问题。随后,Rao和Singh对GRA方法进行了改进,将其应用于决策过程和模糊供应商选择问题。陈专注于基于多属性决策(MADM)…

作者头像 李华
网站建设 2026/1/3 14:00:50

20、地理空间查询处理与绿色云计算:应对能源挑战的策略

地理空间查询处理与绿色云计算:应对能源挑战的策略 1. 地理空间数据查询处理面临的挑战与解决方案 随着地理空间数据的不断积累,从海量数据池中提取有意义的见解和隐含知识成为重要的研究方向。然而,动态地理空间数据集面临着高计算和存储成本,以及在实际地理空间应用中不…

作者头像 李华
网站建设 2025/12/28 1:23:03

Windows逆向工程利器:IDR工具深度解析与实战指南

Windows逆向工程利器&#xff1a;IDR工具深度解析与实战指南 【免费下载链接】IDR Interactive Delphi Reconstructor 项目地址: https://gitcode.com/gh_mirrors/id/IDR Windows逆向工程技术是软件安全分析的核心领域&#xff0c;而IDR&#xff08;Interactive Delphi …

作者头像 李华
网站建设 2025/12/15 1:48:00

终极指南:LXMusic音源V250801版快速上手与深度优化

终极指南&#xff1a;LXMusic音源V250801版快速上手与深度优化 【免费下载链接】LXMusic音源 lxmusic&#xff08;洛雪音乐&#xff09;全网最新最全音源 项目地址: https://gitcode.com/guoyue2010/lxmusic- 还在为音乐播放器找不到想要的歌曲而烦恼吗&#xff1f;今天…

作者头像 李华
网站建设 2026/1/15 14:25:07

百度ERNIE 4.5大模型技术深度解析:MoE架构革新与多模态能力突破

在大语言模型技术飞速迭代的当下&#xff0c;百度自主研发的ERNIE 4.5凭借多项突破性技术&#xff0c;重新定义了多模态大模型的性能边界。作为百度ERNIE系列的最新力作&#xff0c;该模型在技术架构设计、跨模态融合能力及推理效率优化等方面实现了质的飞跃&#xff0c;为企业…

作者头像 李华