📜  c++ over load oprator to print variable of clas - C++ (1)

📅  最后修改于: 2023-12-03 15:13:54.707000             🧑  作者: Mango

在 C++ 中重载运算符以打印类变量

在 C++ 中,运算符可以被重载,以便更好地适应我们的代码需求。其中,输出运算符 << 可以被重载,以便我们能够通过 cout 输出类变量的值。本篇文章将介绍如何在 C++ 中重载输出运算符,以便我们能够更方便地输出类变量的值。

重载输出运算符

对于一个类,我们可以通过在类中定义输出运算符的重载函数,来实现通过 cout 输出类变量的值。这个重载函数的格式如下:

friend std::ostream& operator<<(std::ostream& os, const ClassName& obj) {
    // 输出 obj 中需要输出的变量值
    return os;
}

其中,ClassName 表示你要定义输出运算符的类名,os 是输出对象,obj 是我们要输出的类的对象。

接下来,我们将通过一个示例来演示如何重载输出运算符。

示例

假设我们要定义一个类 People,这个类有两个私有成员变量 name 和 age,我们希望能够通过 cout 输出这个类的对象的名字和年龄。下面是我们将要定义的类:

#include <iostream>

class People {
private:
    std::string name;
    int age;
public:
    People(const std::string& name, int age) : name(name), age(age) {}
    friend std::ostream& operator<<(std::ostream& os, const People& obj);
};

我们在类中定义了两个私有成员变量 name 和 age,并且定义了一个构造函数。接下来,我们将在类声明外定义我们的重载函数:

std::ostream& operator<<(std::ostream& os, const People& obj) {
    os << "Name: " << obj.name << ", Age: " << obj.age;
    return os;
}

我们的重载函数将 name 和 age 输出到 os 中,并返回 os。

现在我们就可以在 main 函数中定义一个 People 对象,并且使用 cout 输出这个对象的值了:

int main() {
    People p1("Tom", 20);
    std::cout << p1 << std::endl;
    return 0;
}

输出结果为:

Name: Tom, Age: 20
总结

重载运算符是 C++ 中的一个强大的特性,我们可以使用这个特性来方便地实现我们的代码需求。在本篇文章中,我们介绍了如何在 C++ 中重载输出运算符,以便我们能够更方便地输出类变量的值。