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

2.运算符重载的限制

2.运算符重载的限制

1.重载后的运算符的两个操作数中,至少有一个是用户自定义的类型;

2.使用运算符时不能违反运算符原来的句法规则。例如,不能将求模运算符(%)重载成使用一个操作数;不能修改运算符的优先级。

3.不能创建新运算符,只能对存在的运算符进行重载。

5.大多数运算符都可以通过成员或非成员函数进行重载,但下面的运算符只能通过成员函数进行重载。=:赋值运算符。():函数调用运算符。[]:下标运算符。->:通过指针访问类成员的运算符。

大多数运算符都可以通过成员或非成员函数进行重载

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // ​ #include <iostream> ​ class NUM { public: int num; //private: // int num; public: NUM(); NUM(int m); void show() const; ​ NUM operator+(const NUM& n) const;//通过成员函数重载加法运算符 }; ​ NUM::NUM() { num = 0; } ​ NUM::NUM(int m) { num = m; } ​ void NUM::show() const { std::cout << "num = " << num << std::endl; } ​ //通过成员函数重载加法运算符 NUM NUM::operator+(const NUM& n) const { NUM temp; temp.num = num + n.num; return temp; } ​ //通过非成员函数重载减法运算符 NUM operator-(const NUM &m, const NUM &n) { NUM temp; temp.num = m.num - n.num; return temp; } ​ int main() { std::cout << "Hello World!\n"; NUM t1(1); t1.show(); NUM t2(2); t2.show(); NUM t3; t3 = t1 + t2; t3.show(); t3 = t1 - t2; t3.show(); } ​ // 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单 // 调试程序: F5 或调试 >“开始调试”菜单 ​ // 入门使用技巧: // 1. 使用解决方案资源管理器窗口添加/管理文件 // 2. 使用团队资源管理器窗口连接到源代码管理 // 3. 使用输出窗口查看生成输出和其他消息 // 4. 使用错误列表窗口查看错误 // 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目 // 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件 ​

只能通过成员函数进行重载

#include <iostream> ​ using namespace std; ​ class Num { private: int n; public: Num(); Num(int m); void operator=(int l); }; ​ Num::Num() { n = 0; cout << "Hello world" << endl; } ​ Num::Num(int m) { n = m; cout << "Good morning" << endl; } ​ void Num::operator=(int l) { n = l; cout << "I love you, Rick" << endl; } ​ int main(void) { Num a; ​ a = 10; // a(10) ​ return 0; } ​
http://www.jsqmd.com/news/105092/

相关文章:

  • 下一代下载技术革命:2025智能调度系统全面解析
  • FastF1: 轻松获取和分析F1数据的Python包
  • 【Q#量子编程调试利器】:如何在VSCode中实现代码覆盖率精准分析
  • 42、Linux编程:软件开发工具探索
  • 3大突破性技术深度解析:SeedVR2-7B视频修复实战指南
  • 5分钟掌握SonarQube代码质量报告生成神器:Sonar CNES Report完全指南
  • 终极轻量级MP3解码神器:minimp3完整指南
  • 36、网络安全测试工具与互联网服务全解析
  • 33、Sendmail配置与使用全解析
  • VSCode集成Qiskit项目实战指南(新手必看的7大坑与避坑策略)
  • 免费API合集:为您的项目打开无限可能
  • lottery抽奖系统完整部署指南:5分钟快速搭建专业级活动平台
  • VMD-Python:在Python环境中实现分子模拟可视化的完整指南
  • Pyfa终极指南:EVE Online新手必备舰船配置工具
  • 量子计算入门第一步,VSCode Qiskit配置验证全解析,错过等于白学
  • 多模态Agent生产环境部署必看:Docker存储性能调优的6个秘密技巧
  • 前端数据安全保护方案:从水印技术到全方位防护体系
  • 视频修复终极指南:使用Untrunc高效拯救损坏文件
  • 数据结构排序系列指南:从O(n)到O(n),计数排序如何实现线性时间复杂度 - 教程
  • U-Boot 完整命令
  • 软件测试专栏——黑盒测试
  • 灰狼算法实现部分遮阴的MPPT跟踪,包括光照突变情况,包括灰狼算法程序和matlab/simu...
  • 2025年评价高的造纸烘干网带/粮食烘干网最新TOP品牌厂家排行 - 品牌宣传支持者
  • Skyvern终极指南:从零开始掌握智能自动化神器
  • 聚焦2025:洁净棚行业十大值得信赖的生产厂家推荐,净化工作台/医疗装修工程/洁净工作台/风淋室/货淋室/快速卷帘门洁净棚源头厂家排行 - 品牌推荐师
  • 为什么你的Agent服务扛不住高负载?:基于Docker的真实压测数据告诉你真相
  • Jmeter录制手机app脚本
  • 2025年天津3d视频制作公司权威推荐榜单:天津三维动画制作/天津制作3d动画/天津动漫制作公司精选 - 品牌推荐官
  • 2025年靠谱的UV 软膜广告灯箱厂家推荐及采购参考 - 品牌宣传支持者
  • 2025年靠谱的rfid标签厂家实力及用户口碑排行榜 - 品牌宣传支持者