我有一个有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;
}
如何访问m_row2值?我试过了
float x = m_row2[0][1];
但这会产生“'初始化':无法从'CArray'转换为'浮动'”错误。我可以毫无错误地对m_row进行上述分配。
我知道我可以通过使用向量来避免这种情况,但“CCorePassageAreasPage”是由其他人创建的,我不想更改它。
答案 0 :(得分:2)
m_row2
是一个指针;所以如果m_row2[nRow]
指向数组,nRow
将引用CArray
数组的元素float x = (*m_row2)[nRow][j];
。因为它(大概)只指向一个对象,所以它只是访问无效的内存。
你几乎肯定不希望它成为指针;因为你说类“有”它,它应该只是一个没有不必要间接的成员。
如果由于某种原因确实需要指针,那么您需要取消引用它以访问它指向的数组:
{{1}}