C++ 运算符重载2025 年 8 月 29 日 | 阅读 8 分钟 运算符重载是 C++ 中的重要特性之一。它是一种编译时多态性。它用于修改某些运算符(例如 C++ 中的 '+'、'-'、'==' 和 '*')的默认行为。 它使我们能够将“+”、“-”、“*”运算符与用户定义的类对象一起使用,从而促进涉及这些对象的操作。可以重载算术运算符的其他类实例包括分数、大整数、复数等等。 语法它具有以下语法: 在此语法中
使用 C++ 运算符重载的简单示例示例编译并运行输出 Enter the first fraction: Enter the numerator : 3 Enter the denominator : 4 Enter the second fraction:nEnter the numerator : 2 Enter the denominator: 5 The fraction is 6/ 20 说明 此 C++ 程序实现了表示分数的类“Fract”并重载了乘法运算符。该类包含私有元素“a1”(分子)和“b1”(分母)。 乘法运算符在“operatior*”函数中被重载,该函数通过将两个分数的分子和分母相乘来计算两个分数的乘积。主函数创建两个分数对象,获取用户输入,并计算这两个分数的乘积。 C++ 运算符重载规则有几条规则有助于理解 C++ 中的运算符重载。
C++ 中运算符重载的类型运算符重载的几种类型如下 1. 一元运算符重载在 C++ 中,一元运算符重载函数是一种运算符重载,它对单个操作数执行其任务。 C++ 一元运算符重载示例 让我们举一个例子来说明 C++ 中的一元运算符重载。 示例编译并运行输出 The value before decrement: The Value: 15 The value after decrement: The Value: 14 说明 上面的 C++ 代码旨在重载前缀递减运算符 (--)。Decrement 类有一个名为 "val" 的整型私有成员,由构造函数设置。前缀递减运算符通过成员函数 operator() 实现,该函数将 'val' 的值减一并返回当前对象。 2. 二元运算符重载在 C++ 二元运算符重载函数中,只能传递一个参数。它是一种对两个操作数执行任务的运算符重载。 C++ 二元 (+) 运算符重载示例 让我们举一个例子来演示 C++ 中的二元 (+) 运算符重载。 示例编译并运行输出 Enter the First Cmplex Number: 4.7 + 2.8i Enter the Second Complex Number: 3.5 + 5.7i Sum of both Numbers: 8.2 + 8.5i 说明 在此示例中,我们创建了一个 Complex 类,然后创建了两个私有数据成员 real_num 和 imag_num。之后,我们使用一个带默认值的参数化构造函数。它将复数初始化为 real_num + imag_num * i。接下来,我们使用程序中的二元 + 运算符来打印两个复数的和。 3. 使用友元函数进行二元运算符重载在 C++ 中,使用友元函数进行二元运算符重载时,运算符重载函数应在友元函数之前可用。此外,该函数必须在类作用域中声明。在二元运算符中,友元函数通常接受两个不同的参数,并借助一元运算符修改一个参数。 C++ 使用友元函数进行二元运算符重载示例 让我们举一个例子来演示 C++ 中使用友元函数进行二元运算符重载。 示例编译并运行输出 Factorial of 5 is: 120 Factorial of 4 is: 24 Product of factorials: 2880 说明 在此示例中,我们定义了一个 Factorial_Of_Number 类,该类计算给定数字的阶乘。之后,我们将使用友元函数进行二元运算符重载来重载 * 运算符。 当两个类对象相乘时,友元函数访问它们的私有 fact 值并返回一个新对象,该对象包含这些阶乘的乘积。display() 函数显示阶乘,displayProduct() 函数显示最终输出。 C++ 中哪些运算符可以重载,哪些不能重载?在 C++ 中,当涉及到一元和二元运算符的重载时,并非每个运算符都可以重载,有些必须保持不变。 可重载运算符是可以重新定义以与用户定义类型一起使用的运算符,而不可重载运算符是不能重载的运算符,因为它们是语言的基础。 以下是 C++ 中不能重载的运算符列表。
C++ 中的特殊运算符可以进行运算符重载。 C++ 中的特殊运算符重载C++ 中有各种运算符可以重载以用于用户定义数据类型。这些包括以下一组运算符。
重载这些运算符简化了对象之间交互的设计,提高了 C++ 编程环境的效率和灵活性。 C++ 中运算符重载的优点C++ 中运算符重载的几个优点如下
C++ 中运算符重载的缺点C++ 中运算符重载的几个缺点如下
结论总之,运算符重载使自定义用户定义类型能够像内置类型一样工作,从而增强了代码的可读性、可重用性和易维护性。它为已定义类提供了运算符的用户特定修改,以帮助相对轻松地解决复杂问题。 C++ 运算符重载 MCQ1. C++ 中可以重载赋值 (=) 运算符吗?
答案: c) 是的,作为成员函数 2. C++ 中哪些运算符必须重载为类成员函数?
答案: b) = 3. 以下关于 C++ 中友元函数运算符的说法哪一项是正确的?
答案: b) 它们可以访问类的私有成员 4. 以下运算符函数重载了什么? Bool operator== (const MyClass &obj);
答案: a) 相等比较 5. C++ 中以下哪些运算符可以重载?
答案: d) + 下一主题C++ 中的函数重载 |
在 C++ 中,函数重写是 OOP(面向对象编程)的一个概念,它允许派生类重新定义其基类中已提供的函数。它用于实现运行时多态性。当我们需要修改或...时,函数重写特别有用。
7 分钟阅读
在 C++ 中,“多态性”一词是“poly”+“morphs”这两个词的组合,意思是多种形式。它是一个希腊词。此属性创建相同的实体,例如在不同场景中表现不同的函数和运算符。使用多态性,我们...
阅读 8 分钟
在 C++ 中,虚函数是一个成员函数,可以被派生类重写。它在基类中声明,我们在派生类中重新定义它。使用 virtual 关键字,我们可以定义虚函数。当我们声明函数时...
阅读 8 分钟
在 C++ 中,函数重载是面向对象编程的一个特性,它允许多个函数拥有相同的名称,但具有不同的参数列表(无论是类型、数量还是两者兼而有之)。它通过允许函数...来使代码更具可读性、可重用性和效率。
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India