news 2026/9/3 5:40:11

2.运算符重载的限制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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; } ​
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:54:15

SGLang监控告警实战:5步构建LLM服务可观测性体系

SGLang监控告警实战&#xff1a;5步构建LLM服务可观测性体系 【免费下载链接】sglang SGLang is a structured generation language designed for large language models (LLMs). It makes your interaction with models faster and more controllable. 项目地址: https://gi…

作者头像 李华
网站建设 2026/9/2 4:55:24

从零到专业:用QLC+打造震撼舞台灯光秀的完整指南

QLC&#xff08;Q Light Controller Plus&#xff09;作为一款免费开源的跨平台舞台灯光控制软件&#xff0c;正成为灯光设计师和活动策划者的首选工具。无论你是灯光新手还是专业人士&#xff0c;这款软件都能帮助你轻松控制DMX灯光系统&#xff0c;实现从简单到复杂的各种灯光…

作者头像 李华
网站建设 2026/9/2 21:55:20

25、Sendmail调试与反垃圾邮件策略

Sendmail调试与反垃圾邮件策略 1. Sendmail调试级别 Sendmail是一个复杂的邮件系统,在测试和调试新配置时,调试级别是非常有用的工具。Sendmail命令接受数百种不同的调试值,但对于系统管理员来说,只有少数几个调试级别真正有用。 1.1 调试级别概述 调试级别由两个用点分…

作者头像 李华
网站建设 2026/9/3 3:10:48

终极指南:用WebPShop插件让Photoshop完美支持WebP格式

终极指南&#xff1a;用WebPShop插件让Photoshop完美支持WebP格式 【免费下载链接】WebPShop Photoshop plug-in for opening and saving WebP images 项目地址: https://gitcode.com/gh_mirrors/we/WebPShop WebPShop作为一款专为Adobe Photoshop设计的开源插件&#x…

作者头像 李华
网站建设 2026/9/2 22:26:29

35、计算机安全审计与测试全解析

计算机安全审计与测试全解析 1. 理解计算机安全审计 审计通常指独立评估,计算机安全审计便是对计算机安全的独立评估。当有人对组织进行计算机安全审计时,主要聚焦两个方面: - 非技术层面 :独立验证组织是否遵循现有的计算机安全政策和程序。 - 技术层面 :独立测试…

作者头像 李华
网站建设 2026/9/2 23:23:52

36、网络安全测试工具与互联网服务全解析

网络安全测试工具与互联网服务全解析 在当今数字化时代,网络安全和互联网服务的稳定运行至关重要。本文将为大家介绍一些常见的网络安全测试工具,以及互联网服务的相关知识,包括其工作原理、通信方式和端口号等内容。 安全测试工具概述 有许多自动化工具可用于进行安全测试…

作者头像 李华