亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C++ 运算符重载实战指南:语法、方法、限制与代码示例

什么是运算符重载?

利用 C++ 运算符重载,可在同一作用域内赋予运算符多重含义。目标是为用户自定义类型赋予运算符的自定义行为。

通过运算符重载,可重新定义大多数 C++ 运算符,用单一符号执行不同操作。

本教程你将学到:

语法

重载 C++ 运算符,需在类内定义特殊成员函数:

class class_name { ... public: return_type operator symbol (argument(s)) { ... } ... };

组成部分:

示例 1:重载前缀 -- 运算符

#include <iostream> using namespace std; class TestClass { private: int count; public: TestClass() : count(5) {} void operator --() { count = count - 3; } void Display() { cout << "Count: " << count; } }; int main() { TestClass tc; --tc; tc.Display(); return 0; }

输出:

C++ 运算符重载实战指南:语法、方法、限制与代码示例

代码截图:

C++ 运算符重载实战指南:语法、方法、限制与代码示例

代码解释:

  1. 包含 <iostream> 访问 I/O 设施。
  2. 使用 std 命名空间简化代码。
  3. 定义类 TestClass。
  4. count 为私有数据成员。
  5. 提供公有构造函数将 count 初始化为 5。
  6. 重载前缀 -- 运算符,使 count 减 3。
  7. 实现 Display() 打印当前值。
  8. main() 中创建实例、应用重载运算符、显示结果。

C++ 运算符重载的不同方法

重载可通过以下方式实现:

  1. 成员函数
  2. 非成员函数(友元或自由函数)
  3. 友元函数(需访问私有数据时)

所有 C++ 运算符都能重载吗?

不能。以下运算符不可重载:

注意事项

  1. 重载仅影响用户自定义类型;内置类型保持原有行为。
  2. 赋值(=)和取地址(&)运算符为提供拷贝构造或赋值运算符的类自动重载。
  3. 运算符优先级不变;可用括号强制求值顺序。
  4. ::、.、?: 显式禁止重载。

运算符重载规则

如何重载运算符

示例 1:重载前缀 ++ 运算符

#include <iostream> using namespace std; class OperatorOverload { private: int x; public: OperatorOverload() : x(10) {} void operator ++() { x += 2; } void Print() { cout << "The Count is: " << x; } }; int main() { OperatorOverload ov; ++ov; ov.Print(); return 0; }

输出:

C++ 运算符重载实战指南:语法、方法、限制与代码示例

代码截图:

C++ 运算符重载实战指南:语法、方法、限制与代码示例

示例 2:复数加法运算符重载

#include <iostream> using namespace std; class TestClass { private: int real, over; public: TestClass(int rl = 0, int ov = 0) : real(rl), over(ov) {} TestClass operator + (TestClass const &obj) { TestClass result; result.real = real + obj.real; result.over = over + obj.over; return result; } void print() { cout << real << " + i" << over << endl; } }; int main() { TestClass c1(9, 5), c2(4, 3); TestClass c3 = c1 + c2; c3.print(); } 

输出:

C++ 运算符重载实战指南:语法、方法、限制与代码示例

代码截图:

C++ 运算符重载实战指南:语法、方法、限制与代码示例

代码解释:

  1. 包含 <iostream> 并使用 std 命名空间。
  2. 定义 TestClass 包含 real 和 over 分量。
  3. 提供构造函数初始化。
  4. 重载 + 运算符实现复数加法。
  5. 返回包含和的新 TestClass 实例。
  6. 实现 print() 显示复数。
  7. main() 中创建两实例、相加、打印结果。

总结

C语言

  1. C++数组传递给函数实战指南
  2. C++ 运算符全解析:类型、示例与示例程序
  3. C++ do-while 循环详解:语法、实战示例与嵌套循环
  4. C++ 指针精通:核心概念、代码示例与实战应用
  5. C++ char 类型完全指南:声明、ASCII 码、输入输出与字符串转换
  6. C++ 结构体详解:定义、初始化、指针、函数参数与局限性
  7. 掌握 C++ std::list:语法、函数与实战示例
  8. C++ 函数详解:从声明到调用的实战指南
  9. 精通 Python 运算符重载:实战指南
  10. 精通 Python Lambda 函数:实用示例与最佳实践
  11. Python round() 函数详解与实战示例
  12. 精通 Python map() 函数:语法、示例与最佳实践