我在一个类里面定义了如下的结构
protected:
typedef class PaperInfo
{
public:
PaperInfo();
                  ~PaperInfo(); BOOL m_bPaperSel;
int m_nTempletNo;
int     m_nPaperKind;
int     m_nAudioKind; //0 - None, 1- A ,2 - D  
BOOL m_bTch;
BOOL m_bControl;
BOOL m_bAllotFlag;
BOOL    m_bExistFlag;
BOOL m_bStartExm;
BOOL    m_bCollectPaper;
BOOL m_bFeedBack; CString m_strPaperID;
CString m_strComposeID;
CString m_strPaperName;
CString m_strControlScript;
CString m_strAnswerSheet;
CString m_strDigitalFile;
CString m_strDigitalPaper;
CString m_strDigitalAnsPaper; CList<INT,INT&> m_lstArrStd; }PAPERINFO,FAR *LPPAPERINFO;
然后在定义下面定义了: PAPERINFO m_arrPaperInfo[7];现在想在别的类里面调用&m_arrPaperInfo[nIndex]的地址给一个ULONG变量!
请教怎么写?各位帮忙啊!

解决方案 »

  1.   

    》现在想在别的类里面调用&m_arrPaperInfo[nIndex]的地址给一个ULONG变量!
    不太懂这句话。void func(ULONG i)
    {
         m_arrPaperINfo[i].blah();
    }
      

  2.   

    就是想把m_arrPaperInfo[nIndex]的地址给一个ULONG变量,那个nIndex我要根据情况给的
      

  3.   

    在别的类里面调用&m_arrPaperInfo[nIndex]的地址给一个ULONG变量
    严重违背OOA/OOD/OOP中对象的封装性、隐蔽性原则
      

  4.   

    ULONG u = (ULONG)&m_arrPaperInfo[nIndex];
      

  5.   

    楼主可以用一个公有函数GetAddress()之类的函数传递它的地址就好了,这样还是可以保持该结构protected不变
      

  6.   

    既然你的变量定义为protected,就不是想在所以的类里都能访问该变量。你可以按PiggyXP(什么也不说) 说的添加一个方法,用来返回地址(指针),例如:public:
      ULONG   GetAddress(int iIndex){return (ULONG)&m_arrPaperInfo[nIndex];};
      

  7.   

    直接强制转换好了
    ULONG uAddr = (ULONG)&m_arrPaperInfo[nIndex];