我有2个结构变量
假设有
struct EVENT
{
unsigned char cHeader[8];
unsigned char cType[4];
};
struct TRIGGER
{
unsigned char cHeader[8];
unsigned char cType1;
unsigned char cType2;
unsigned char cType3;
unsigned char cType4;
};CArray<EVENT,EVENT&> m_list;
EVENT gEvent;
TRIGGER gTrigger;
//初始化有
m_listAr.SetSize(3);
那么我想要的效果是
m_listAr.GetAt(0) 返回的event 结构变量的引用如何赋值给gTrigger,如何转换呢?

解决方案 »

  1.   

    我现在这样做,不知道对不起,请大侠分析下,谢谢
    gTrigger = *((TRIGGER*)&m_listAr.GetAt(0));
      

  2.   

    用指针,或者给你的结构体添加拷贝构造函数,CArray不会自动给你添加拷贝构造推荐用指针:
    CArray<EVENT *> m_list;
    分配好EVENT内存后,将指针添加进去
      

  3.   

    楼上说推荐使用指针.CArray 的构造函数函数类似下面的风格
    template<class TYPE,class ARG_TYPE>class CArray:public CObject 模版都是2个参数,你那个怎么整,没搞过,也没用过,能详细点吗?不胜感激
      

  4.   

    template < class TYPE, class ARG_TYPE = const TYPE& > 
    class CArray : 
       public CObject后面一个模板参数是自动赋值的,不用管他,管好第一个参数就行了
      

  5.   

    谢谢,如果是这样,用list还好点呢.