我的问题是如何访问和修改一个类中定义的二维数组,这是与另一个类的朋友。下面是我的问题的一些细节:访问两个朋友类之间的二维数组
在class A
我声明并为我的二维数组(指针指针)u分配适当的空间。
Class A
{
public:
friend class B;
long double **u;
int fun;
void make();
};
void A::make()
{
long double **u = new long double *[nx];
for (int i=0;i<nx;i++)
u[i] = new long double [ny];
int fun = 9;
}
Class A
是Class B
的朋友;我需要使用Class A
中声明的数组,其功能定义为class B
。下面是我的B级:
class B
{
public:
void get(A*);
};
void B::get(A *pt)
{
using namespace std;
cout << pt->fun;
cout << pt->u[0][0];
}
我得到我的第二COUT pt->u[0][0]
一个总线错误。有没有简单的方法来使用这个设置我必须访问我的u [] []数组?我认为我得到的错误,因为指针指向我的数组的第一个条目,因此我的整个二维数组作为一行保存在内存中(这里大声思考)。我是一个Fortran家伙,所以这个东西对我来说有点新鲜。
任何帮助或“指针”其他有用的线程将不胜感激。
谢谢!
阿尔贝托
你叫`使()`第一... ? – 2011-02-03 00:08:44
既然你是公开的,B类是A的朋友的事实并没有真正发挥作用(如果我错了,纠正我) – AlexJF 2011-02-03 00:11:01
是的,我有一个函数可以调用make ()和get()当我编译并运行代码时,我得到了正确的“cout << pt-> fun”值 – Al007 2011-02-03 00:14:56