21xrx.com
2024-11-22 10:29:58 Friday
登录
文章检索 我的文章 写文章
C++运算符重载的实例
2023-06-27 08:48:30 深夜i     --     --
C++语言 运算符重载 实例

C++运算符重载是面向对象编程中一个非常重要的概念。它允许我们将原本只能用于基本数据类型的运算符,用于自定义的数据类型和类对象。C++中可以重载的运算符包括大部分的数学运算符,如“+”、“-”、“*”、“/”、“%”,还有关系运算符、“<<”、“>>”等。

下面是一些C++运算符重载的实例:

1. 运算符“+”:可以用于将两个数字相加,也可以用于将两个字符串连接起来。如下所示:


int operator+ (int a, int b) {

  return a + b;

}

string operator+ (const string& str1, const string& str2) {

  return str1 + str2;

}

2. 运算符“<”:可以用于比较两个自定义数据类型的大小关系。如下所示:


class Student {

public:

  bool operator< (const Student& other) const {

    return (score < other.score);

  }

private:

  int score;

};

3. 运算符“<<”和“>>”:可以用于自定义类的输入输出操作,如下所示:


class Person {

public:

  friend ostream& operator<< (ostream& os, const Person& p)

    os << "Name: " << p.name << "

  friend istream& operator>> (istream& is, Person& p)

    is >> p.name >> p.age;

    return is;

  

private:

  string name;

  int age;

};

4. 运算符“[]”:可以用于访问自定义类中的数据成员,如下所示:


class Array {

public:

  int& operator[] (int index) {

    return data[index];

  }

private:

  int data[10];

};

在使用运算符重载时,我们需要注意几点:

- 重载后的运算符必须和原来的运算符具有相同的优先级和结合性。

- 重载后的运算符必须具有与原来的运算符相同的参数个数和类型。

- 重载后的运算符不能改变原来运算符的基本含义。

总之,C++运算符重载是一项强大而有用的功能,它可以让我们更自由地定义自己的数据类型和类对象,从而更好地实现面向对象编程的思想。

  
  

评论区

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