C++ 从CArray指针访问值

C++ 从CArray指针访问值,c++,arrays,windows,pointers,mfc,C++,Arrays,Windows,Pointers,Mfc,我有一个类,它有一个CArray对象,我需要从这个CArray中获取值到另一个类,但是到目前为止还没有这样做 class CTempGridClass: public CTableCtrl { public: CArray<CArray<float,float>, CArray<float,float>&> *m_row2; }; class CCorePassageAreasPage : public CDialog { DECLA

我有一个类,它有一个CArray对象,我需要从这个CArray中获取值到另一个类,但是到目前为止还没有这样做

class CTempGridClass: public CTableCtrl {
public:
    CArray<CArray<float,float>, CArray<float,float>&> *m_row2;
};

class CCorePassageAreasPage : public CDialog {
    DECLARE_DYNCREATE(CCorePassageAreasPage)
public:
    enum { IDD = IDD_CORE_PASSAGE_AREA };
    CArray<CArray<float,float>, CArray<float,float>&> m_row;
    CTempGridClass Grid;
};

BOOL CCorePassageAreasPage::OnSetActive() {
    Grid.m_row2 = &m_row;
}
但这会发出一个“初始化”错误:无法从“CArray”转换为“float”。我可以对m_行执行上述作业,没有任何错误


我知道我可以通过使用向量来避免这种情况,但是“CCRepassageAreasPage”是由其他人创建的,我不想更改它。

m_row2
是一个指针;因此
m_row2[nRow]
将引用
CArray
数组的元素
nRow
,如果它指向一个数组。因为它(大概)只指向一个对象,所以它只访问无效内存

你几乎肯定不希望它成为一个指针;既然你说这个类“拥有”它,它应该只是一个成员,没有不必要的间接性

如果出于某种原因确实需要指针,则需要取消对它的引用以访问它所指向的数组:

float x  = (*m_row2)[nRow][j];

那么
x=m_row2->operator[](nrow)[j]
呢?
float x  = (*m_row2)[nRow][j];