21xrx.com
2024-09-20 00:05:50 Friday
登录
文章检索 我的文章 写文章
C++类和重载的代码示例
2023-07-10 20:01:03 深夜i     --     --
C++ 重载 代码示例

C++是一种流行的面向对象程序设计语言,其支持类和重载功能。C++类是实现面向对象编程的基础,它提供了一种封装数据和操作的方法。而重载允许使用相同的名称对多个函数或运算符进行定义,仅通过其参数类型和数量的不同来区分它们。

下面是一个简单的C++类的代码示例:


class Rectangle {

 private:

  double length;

  double width;

 public:

  // Default constructor

  Rectangle()

    length = 0;

    width = 0;

  

  // Parameterized constructor

  Rectangle(double l, double w)

    length = l;

    width = w;

  

  // Mutators and accessors

  void setLength(double l)

    length = l;

  

  void setWidth(double w)

    width = w;

  

  double getLength() const

    return length;

  

  double getWidth() const

    return width;

  

  // Other member functions

  double getArea() const {

    return length * width;

  }

  double getPerimeter() const {

    return 2 * (length + width);

  }

};

在这个示例中,我们定义了一个矩形类,它具有私有数据成员length和width。我们也定义了两个构造函数,一个是默认构造函数,另一个是带有参数的构造函数。我们还为每个数据成员定义了设置器和访问器,并定义了其他成员函数,如计算面积和周长。

接下来,我们提供一个重载的代码示例。


#include <iostream>

using namespace std;

class Complex {

 private:

  double real;

  double imag;

 public:

  Complex()

    real = 0;

    imag = 0;

  

  Complex(double r, double i)

    real = r;

    imag = i;

  

  // Overloaded operator functions

  Complex operator+(Complex const &obj) {

    Complex res;

    res.real = real + obj.real;

    res.imag = imag + obj.imag;

    return res;

  }

  Complex operator-(Complex const &obj)

    Complex res;

    res.real = real - obj.real;

    res.imag = imag - obj.imag;

    return res;

  

  Complex operator*(Complex const &obj) {

    Complex res;

    res.real = real * obj.real - imag * obj.imag;

    res.imag = real * obj.imag + imag * obj.real;

    return res;

  }

  // Other member functions

  void print() {

    cout << "(" << real << ", " << imag << ")" << endl;

  }

};

int main() {

  Complex c1(2, 3);

  Complex c2(1, 2);

  Complex c3;

  c3 = c1 + c2;

  c3.print();

  c3 = c1 - c2;

  c3.print();

  c3 = c1 * c2;

  c3.print();

  return 0;

}

在这个示例中,我们定义了一个复数类,它具有私有数据成员real和imag。我们还通过重载+,-和*运算符,实现了复数的加、减和乘法运算。我们还定义了一个打印函数,用于将结果输出到控制台。

在主函数中,我们创建了两个复数对象c1和c2,并使用重载的运算符函数执行加法,减法和乘法计算,将结果保存到c3对象中。最后,我们通过打印函数将结果输出到控制台。

总之,C++类和重载的功能是C++编程中不可或缺的部分。类提供了一种封装数据和操作的方法,而重载允许使用相同的名称对多个函数或运算符进行定义,为程序员带来更加灵活的编程选择。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复