c++二维指针和二级指针的问题

#include<iostream>#include<cstring>usingnamespacestd;classMatrix{public:int**p;intr;i... #include <iostream>
#include <cstring>
using namespace std;

class Matrix {
public:
int ** p;
int r ;
int c ;
Matrix() {

int r = 0;
int c = 0;
int **p = NULL;
}
friend istream &operator>>(istream &o, Matrix &a) {
o >> a.r >> a.c;
int **p = new int*[a.r];
for (int i = 0; i < a.r; i++) {
p[i] = new int[a.c];
}
for (int i = 0; i < a.r; i++) {
for (int j = 0; j < a.c; j++) {
o >> a.p[i][j];
}
}
return o;
}
};
int main() {
Matrix a, b;
cin >> a >> b;
return 0;
}
求问各位大佬,我想通过运算符重载录入一个二维数组,但是编译时引发了异常: 读取访问权限冲突。
a.p 是 0x1110112
展开
 我来答
microroom
科技发烧友

2018-03-22 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1667万
展开全部
#include<iostream>

using namespace std;

class Matrix
{
public:
int ** p;
int r ;
int c ;
Matrix()
{
r = 0;
c = 0;
p = NULL;
}
~Matrix()
{
for (int i = 0; i < r; i++)
delete [] p[i];
delete [] p;
}
friend istream &operator>>(istream &o, Matrix &a)
{
o >> a.r >> a.c;
a.p = new int*[a.r];
for (int i = 0; i < a.r; i++)
{
a.p[i] = new int[a.c];
}
for (int i = 0; i < a.r; i++)
{
for (int j = 0; j < a.c; j++)
{
o >> a.p[i][j];
}
}
return o;
}
void output()
{
for (int i = 0; i < r; i++)
{
for (int j = 0; j < c; j++)
{
cout<<p[i][j]<<" ";
}
cout<<endl;
}
}
};
int main()
{
Matrix a, b;

cin >> a >> b;
a.output();
cout<<endl;
b.output();
return 0;
}
windos2011
2018-03-22 · TA获得超过234个赞
知道小有建树答主
回答量:251
采纳率:84%
帮助的人:175万
展开全部
里面又定义了一个int **p?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式