这个函数是一个重载运算符 '<', 用于将 Array 对象输出到 ostream 流中。它接受两个参数:一个输出流 os 和一个 Array 对象 a。函数的实现使用一个 for 循环遍历数组 a 中的所有元素,并将每个元素输出到 os 中,每个元素之间用逗号隔开。最后,函数将一个换行符写入流中并返回该流。这个函数使用了模板 '' 来支持不同类型的 Array 对象。

例如,以下代码演示了如何使用这个函数输出一个包含整数的 Array 对象:

#include <iostream>

template <class U>
class Array {
public:
    // ...
    U& operator[](int index) { return data[index]; }
    int getsize() const { return size; }
private:
    U *data;
    int size;
};

template <class U>
std::ostream& operator<<(std::ostream& os, Array<U>& a) {
    for(int i=0; i<a.getsize(); i++) {
        os << a[i];
        if(i != a.getsize()-1) {
            os << ',';
        }
    }
    os << std::endl;
    return os;
}

int main() {
    Array<int> arr(5);
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    arr[3] = 4;
    arr[4] = 5;

    std::cout << arr << std::endl; // 输出:1,2,3,4,5
    return 0;
}

这个函数使得我们可以像使用基本数据类型一样方便地输出 Array 对象,提高了代码的可读性和易用性。

C++ Array 类重载输出运算符 << 解释

原文地址: https://www.cveoy.top/t/topic/oBja 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录