C++ 二元运算符重载

C++ 二元运算符重载

本节将讨论C++编程语言中的二元运算符重载。含有两个操作数用于执行数学运算的运算符被称为二元运算符重载。它是一种多态的编译技术,通过从程序员或用户那里获取两个操作数,单个运算符可以执行各种功能。有多个二元运算符,如+、-、*、/等,可以直接操作或重载类的对象。

C++ 二元运算符重载

示例,假设我们有两个数字,5和6;并重载二进制(+)运算符。因此,二进制(+)运算符将数字5和6相加并返回11。此外,我们还可以使用二进制运算符进行减法、乘法和除法运算,以进行各种计算。

二进制运算符重载的语法

以下是C++编程语言中二进制运算符重载的语法。

return_type :: operator binary_operator_symbol (arg)
{
// function definition
}

在这里,

return_type(返回类型): 它定义了函数的返回类型。

operator(操作符): 它是函数重载的关键字。

binary_operator_symbol(二元操作符符号): 它代表了重载函数的二元操作符符号,用于执行计算。

arg(参数): 它定义了传递给函数的参数。

重载二元操作符以获得两个复数的和的步骤

步骤 1: 启动程序。

步骤 2: 声明类。

步骤 3: 声明变量及其成员函数。

步骤 4: 使用用户定义的inp()函数获取两个数字。

步骤 6: 类似地,定义二元(-)操作符以减去两个数字。

步骤 7: 调用print()函数以显示输入的数字。

步骤 8: 声明类对象x1、y1、sum和sub。

步骤 9: 现在使用x1和y1对象调用print()函数。

步骤 10: 然后,通过使用“+”和“-”运算符添加和减去对象来获取sum和sub对象的结果。

步骤 11: 最后,使用x1、y1、sum和sub调用print()和print2()函数。

步骤 12: 显示复数的加法和减法。

步骤 13: 停止或终止程序。

示例 1:使用二元(+)和(-)操作符进行两个复数的加法和减法的程序

让我们创建一个程序,通过在C ++编程语言中重载“+”和“-”二元操作符来计算两个复数的加法和减法。

/* use binary (+) operator to add two complex numbers. */
#include <iostream>
using namespace std;
class Complex_num
{
    // declare data member or variables
    int x, y;
    public:
        // create a member function to take input
        void inp()
        {
            cout << " Input two complex number: " << endl;
            cin >> x >> y;
        }       
        // use binary '+' operator to overload
        Complex_num operator + (Complex_num obj)
        {
            // create an object
            Complex_num A;
            // assign values to object
            A.x = x + obj.x;
            A.y = y + obj.y;
            return (A);
        }       
        // overload the binary (-) operator
        Complex_num operator - (Complex_num obj)
        {
            // create an object
            Complex_num A;
            // assign values to object
            A.x = x - obj.x;
            A.y = y - obj.y;
            return (A);
        }       
        // display the result of addition
        void print()
        {
            cout << x << " + " << y << "i" << "\n";
        }

        // display the result of subtraction
        void print2()
        {
            cout << x << " - " << y << "i" << "\n";
        }
};
int main ()
{
Complex_num x1, y1, sum, sub; // here we created object of class Addition i.e x1 and y1 
    // accepting the values
    x1.inp();
    y1.inp();   
    // add the objects
    sum = x1 + y1;
    sub = x1 - y1; // subtract the complex number   
    // display user entered values
    cout << "\n Entered values are: \n";
    cout << " \t";
    x1.print();
    cout << " \t";
    y1.print(); 
    cout << "\n The addition of two complex (real and imaginary) numbers: ";
    sum.print(); // call print function to display the result of addition   
    cout << "\n The subtraction of two complex (real and imaginary) numbers: ";
    sub.print2(); // call print2 function to display the result of subtraction
    return 0;
}

输出

Input two complex numbers:
5
7
Input two complex numbers:
3
5
Entered values are:
    5 + 7i
    3 + 5i
The addition of two complex (real and imaginary) numbers: 8 + 12i
The subtraction of two complex (real and imaginary) numbers: 2 - 2i   

在上述程序中,我们从用户那里获取两个数字,然后使用二进制运算符来重载’+’和’-‘运算符,以在类中将两个复数相加和相减。

示例2:使用二进制运算符重载来计算两个数的和的程序 让我们创建一个计算类中两个数字之和的程序,通过在C++编程语言中重载二进制加(+)运算符来实现。

/* use binary (+) operator to perform the addition of two numbers. */
#include <iostream>
using namespace std;
class Arith_num
{
    // declare data member or variable
    int x, y;
    public:
        // create a member function to take input
        void input()
        {
            cout << " Enter the first number: ";
            cin >> x;
        }       
        void input2()
        {
            cout << " Enter the second number: ";
            cin >> y;
        }   
        // overloading the binary '+' operator to add number
        Arith_num operator + (Arith_num &ob)
        {
            // create an object
            Arith_num A;
            // assign values to object
            A.x = x + ob.x;
            return (A);
        }       
        // display the result of binary + operator
        void print()
        {
            cout << "The sum of two numbers is: " <<x;
        }       
};
int main ()
{
   Arith_num x1, y1, res; // here we create object of the class Arith_num i.e x1 and y1 
    // accepting the values
    x1.input();
    y1.input(); 
    // assign result of x1 and x2 to res
    res = x1 + y1;  
    // call the print() function to display the results
    res.print();    
    return 0;   
}

输出

Enter the first number: 5
Enter the second number: 6
The sum of two numbers is: 11   

在上面的程序中,我们从用户那里获取两个数字,5和6,然后重载二进制加(+)运算符执行相加操作,返回两个数字的和为11。

示例3:通过重载多个二进制运算符执行算术运算的程序

让我们创建一个程序,在类中重载多个二进制运算符以执行算术运算。

/* use binary operator to perform the arithmetic operations in C++. */
#include <iostream>
using namespace std;
class Arith_num
{
    // declare data member or variable
    int num;
    public:
        // create a member function to take input
        void input()
        {
            num = 20; //define value to num variable
        }
        // use binary '+' operator to add number
        Arith_num operator + (Arith_num &ob)
        {
            // create an object
            Arith_num A;
            // assign values to object
            A.num = num + ob.num;
            return (A);
        }
        // overload the binary (-) operator
        Arith_num operator - (Arith_num &ob)
        {
            // create an object
            Arith_num A;
            // assign values to object
            A.num = num - ob.num;
            return (A);
        }   
        // overload the binary (*) operator
        Arith_num operator * (Arith_num &ob)
        {
            // create an object
            Arith_num A;
            // assign values to object
            A.num = num * ob.num;
            return (A);
        }       
        // overload the binary (/) operator
        Arith_num operator / (Arith_num &ob)
        {
            // create an object
            Arith_num A;
            // assign values to object
            A.num = num / ob.num;
            return (A);
        }       
        // display the result of arithmetic operators
        void print()
        {
            cout << num;
        }       
};
int main ()
{
    Arith_num x1, y1, res; // here we created object of class Addition i.e x1 and y1    
    // accepting the values
    x1.input();
    y1.input(); 
    // assign result of x1 and x2 to res
    res = x1 + y1;
    cout << " Addition : " ;
    res.print();    
    // assign the results of subtraction to res
    res = x1 - y1; // subtract the complex number
    cout << " \n \n Subtraction : " ;
    res.print();    
    // assign the multiplication result to res
    res = x1 * y1;
    cout << " \n \n Multiplication : " ;
    res.print();    
    // assign the division results to res
    res = x1 / y1;
    cout << " \n \n Division : " ;
    res.print();
    return 0;   
}

输出

Addition : 40
Subtraction : 0
Multiplication : 400
Division : 1    

在上面的程序中,我们声明变量num的值为20,然后重载了二元加号(+)、减号(-)、乘号(*)和除号(/)运算符,在Arith_num类中执行不同的算术操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程