C++ 从CArray指针访问值
我有一个类,它有一个CArray对象,我需要从这个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
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];