gpt4 book ai didi

c++ - 非成员函数需要通过指针打印出一个数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:17:07 26 4
gpt4 key购买 nike

我需要编写一个 Matrix 类,它有一个指向 double 组的指针。我需要以“矩阵方式”打印这些 double 。我创建了一个引用数组的私有(private)“double *m”(请参阅​​构造函数)。现在,operator<< 是一个非成员函数,我不知道如何打印出指针指向的数组..

 class Matrix {
private:
double * m;
int size;
public:
Matrix(const int rows = 2, const int columns = 2);
Matrix(const Matrix& matrix);
Matrix& operator=(const Matrix& matrix);
double * getM() const {return m;}
friend const Matrix& operator *(int x, const Matrix& m);
friend const Matrix& operator *(const Matrix& matrix,int x);
friend std::ostream& operator<<(std::ostream& out, const Matrix& matrix);

int getSize() const {return size;}
void setSize(const int s){size = s;}
virtual ~Matrix();
};

Matrix::Matrix(const int rows, const int columns) {
size = rows * columns;
m = new double[size];
for(int i = 0; i < size; i++){
*(m+(i+1)) = i+1;
}
}

最佳答案

因为您已经声明了您的 operator <<一个friend你的Matrix类,运算符(operator)可以访问所有 matrix的私有(private)成员,包括指针成员 mint成员(member)size .您可以在运营商的实现中充分利用它们:

std::ostream& operator<<(std::ostream& out, const Matrix& matrix) {
double *a = matrix.m;
int s = matrix.size;
...
// Do printing here
}

关于c++ - 非成员函数需要通过指针打印出一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32020156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com