我的問題是如何訪問和修改一個類中定義的二維數組,這是與另一個類的朋友。下面是我的問題的一些細節:訪問兩個朋友類之間的二維數組
在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