21xrx.com
2024-11-10 00:30:10 Sunday
登录
文章检索 我的文章 写文章
C++中类的重载相关代码实例
2023-06-22 08:10:46 深夜i     --     --
C++ 重载 代码实例

C++是一种多范式的编程语言,其支持面向对象编程(OOP)。在C++中,类(class)是一种用于描述对象的模板。一个类可以包含属性和方法,用来表示对象的状态和行为。其中,类的属性也被称为成员变量,而类的方法也被称为成员函数。

在C++中,类的重载是指在同一个类中可以定义多个同名的成员函数,只要它们的参数列表不同即可。这样做可以提高代码的可读性和可重用性,使得程序员可以更好地组织代码并实现更复杂的操作逻辑。

以下是C++中类的重载相关代码实例:


#include <iostream>

using namespace std;

class Point {

 private:

  int x, y;

 public:

  Point()

   x = 0;

   y = 0;

  

  Point(int a, int b)

   x = a;

   y = b;

  

  void set(int a, int b)

   x = a;

   y = b;

  

  void print() {

   cout << "(" << x << ", " << y << ")" << endl;

  }

  Point operator+ (Point p) {

   Point tmp;

   tmp.x = x + p.x;

   tmp.y = y + p.y;

   return tmp;

  }

  Point operator+ (int n) {

   Point tmp;

   tmp.x = x + n;

   tmp.y = y + n;

   return tmp;

  }

};

int main() {

 Point p1(1, 2);

 Point p2(3, 4);

 Point p3 = p1 + p2;

 p3.print();

 Point p4 = p1 + 10;

 p4.print();

 return 0;

}

在上面的代码中,我们定义了一个名为Point的类,该类包含两个私有成员变量x和y,以及多个公有成员函数:默认构造函数、自定义构造函数、set函数、print函数,以及两个重载的运算符函数:+运算符和+运算符。

+运算符函数的定义如下:


Point operator+ (Point p) {

 Point tmp;

 tmp.x = x + p.x;

 tmp.y = y + p.y;

 return tmp;

}

该函数表示当我们使用+运算符时,会调用该函数。由于我们已经重载了+运算符,所以该函数会在两个Point对象相加时被调用,并返回一个新的Point对象,其中x和y分别为两个对象的x和y的和。

+运算符函数还可以重载一个整数参数:


Point operator+ (int n) {

 Point tmp;

 tmp.x = x + n;

 tmp.y = y + n;

 return tmp;

}

该函数表示当我们使用+运算符并附带了一个整数参数时,会调用该函数。该函数会对当前Point的x和y都加上这个整数参数,并返回一个新的Point对象。

在main函数中,我们定义了两个Point对象p1和p2,并将它们相加得到了一个新的Point对象p3。我们还使用了另一个重载函数,将p1与整数10相加得到了一个新的Point对象p4。最终我们将p3和p4分别输出。

总结:

C++中的类重载使得程序员可以使用相同的函数名进行不同的操作,增加了代码的可读性和可维护性。在类的设计过程中,如果有一些常用的计算或操作需要进行多次,可以考虑重载相关的函数,并使代码更具灵活性和可扩展性。

  
  

评论区

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