我在recordset派生类中建立一个结构,然后再建立一个基于此得new 数组,然后再界面类中调用,是否可以实现,应该注意些什么?
问题虽小,但对我很重要,希望大虾们不吝赐教!
100分送上!!

解决方案 »

  1.   

    你可以把此结构定义为全局的,而在recordset派生类和界面类定义其变量不就解决了么?
      

  2.   

    没错,但是如果在recordset派生类中建立结构,会出现什么问题呢?
    我想不清楚,主要是为了方便程序管理,我希望全局的越少越好
    多谢回复!
      

  3.   

    应该可以,不过要注意写上拷贝构造函数和重载=号运算符号,如果不需要的话,将它们声明为private的也可以
      

  4.   


    .........
    UpdateData();
             CDatabase    m_database;
    CBuyBillRec  m_buybill(&m_database);
    m_buybill.m_strFilter="buy_no='"+m_sBillNo+"'";
         
    nBuyBillCount=0;
    if(!m_buybill.Open())
    {
    AfxMessageBox("BuyBill Database Open Failed!");
    return;
    } if(m_buybill.IsEOF())
    {
    m_buybill.Close();
    return;
    }
    while(!m_buybill.IsEOF())
    {
    m_buybill.MoveNext();
    }
    nBuyBillCount=m_buybill.GetRecordCount(); if(m_pBuyBill!=NULL) delete []m_pBuyBill;   //这里就是struct
             m_pBuyBill = new  BUYBILL[nBuyBillCount+2]; m_buybill.MoveFirst();
    for(int i=0;i<nBuyBillCount;i++)
    {
    m_pBuyBill[i].autoid=m_buybill.m_autoid;
    strcpy(m_pBuyBill[i].billno,m_buybill.m_buy_no);
    strcpy(m_pBuyBill[i].medica_no,m_buybill.m_medica_no);
    strcpy(m_pBuyBill[i].medica_name,m_buybill.m_medica_name);
    strcpy(m_pBuyBill[i].spec,m_buybill.m_pack_spec);
    strcpy(m_pBuyBill[i].unit,m_buybill.m_medica_unit);
    strcpy(m_pBuyBill[i].client,m_buybill.m_sell_man);
    strcpy(m_pBuyBill[i].approve_no,m_buybill.m_approve_no);
    strcpy(m_pBuyBill[i].avalia_date,m_buybill.m_avalia_date);
            m_pBuyBill[i].price  = m_buybill.m_price; 
    m_pBuyBill[i].amount = m_buybill.m_amount;
    m_pBuyBill[i].sum    = m_buybill.m_sum_money;
            m_pBuyBill[i].rate   = m_buybill.m_rate;
    sbillno              = m_buybill.m_buy_no;
    ctbill               = m_buybill.m_buy_date;
            stype                = m_buybill.m_pay_type;
    shandman             = m_buybill.m_handle_man;
    sstate               = m_buybill.m_state; m_buybill.MoveNext();
    } m_buybill.Close();
    }
      

  5.   

    定义struct的对象时,注意初始化
    STRUCTXXX a;
    memset(&a, 0, sizeof(STRUCTXXX));new数组,在delete时注意一定要有[]
    STRUCTXXX *p=new STRUCTXXX[100];
     ...
    delete[] p;
      

  6.   

    多谢诸位老大,只是darkhawk(hawk) 的发言我看不明白,能说详细一些吗?
    其他几位说的都已经了解了
     tigerVC(Tiger.Z) 提供源码,多一点分,明天节贴,再次感谢!