编写一个友元函数来读取矩阵指定所在行列的值。
时间: 2024-02-01 12:16:06 浏览: 21
以下是一个读取矩阵指定行列的值的友元函数的示例:
```c++
#include <iostream>
using namespace std;
const int ROW = 3;
const int COL = 3;
class Matrix {
private:
int m[ROW][COL];
public:
Matrix() {
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
m[i][j] = 0;
}
}
}
void set(int row, int col, int val) {
m[row][col] = val;
}
friend int get(Matrix& mat, int row, int col);
};
int get(Matrix& mat, int row, int col) {
return mat.m[row][col];
}
int main() {
Matrix mat;
mat.set(0, 0, 1);
mat.set(0, 1, 2);
mat.set(0, 2, 3);
mat.set(1, 0, 4);
mat.set(1, 1, 5);
mat.set(1, 2, 6);
mat.set(2, 0, 7);
mat.set(2, 1, 8);
mat.set(2, 2, 9);
cout << "Matrix:" << endl;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
cout << mat.get(mat, i, j) << " ";
}
cout << endl;
}
cout << endl << "Value at (1,2): " << get(mat, 1, 2) << endl;
return 0;
}
```
在这个示例中,`Matrix` 类有一个私有的 `m` 数组来存储矩阵值。`set` 函数用于将指定位置的值设置为给定值。`get` 函数是一个友元函数,可以访问 `Matrix` 的私有成员 `m`,并返回指定位置的值。在 `main` 函数中,我们首先设置了一个矩阵,并使用 `get` 函数读取了矩阵中指定位置的值。