重载嵌套结构/类的流插入运算符

时间:2018-09-28 00:31:31

标签: c++ operator-overloading

我想重载嵌套在类中的结构的流插入运算符。如何解决此错误并使功能正常运行,或者有其他替代方法可以实现该错误?

struct S {
    int a;
    int b;
};

class T {
private:
    S** arrayName;
    int r;
    int c;

public:
    friend ostream& operator << (ostream& _os, const T& _t) {
        for (int i = 0; i < _t.r; i++) {
            for (int j = 0; j < _t.c; j++) {
                _os << _t.arrayName[i][j];
            }
        }
        return _os;
    }
}

1 个答案:

答案 0 :(得分:0)

如果arrayName只是class T中的一个整数数组,例如:

int arrayName [4][4]; //for example

当前的实现将起作用。但是由于arrayName是指向struct S的指针,并且充当struct S的二维数组,因此您需要在{{1}中重载<<运算符},以便能够打印其成员struct Sa

所以您的b现在应该是:

struct S
相关问题