小问题:struct 结构在类中使用应该注意些什么? 我在recordset派生类中建立一个结构,然后再建立一个基于此得new 数组,然后再界面类中调用,是否可以实现,应该注意些什么?问题虽小,但对我很重要,希望大虾们不吝赐教!100分送上!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以把此结构定义为全局的,而在recordset派生类和界面类定义其变量不就解决了么? 没错,但是如果在recordset派生类中建立结构,会出现什么问题呢?我想不清楚,主要是为了方便程序管理,我希望全局的越少越好多谢回复! 应该可以,不过要注意写上拷贝构造函数和重载=号运算符号,如果不需要的话,将它们声明为private的也可以 ......... 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();} 定义struct的对象时,注意初始化STRUCTXXX a;memset(&a, 0, sizeof(STRUCTXXX));new数组,在delete时注意一定要有[]STRUCTXXX *p=new STRUCTXXX[100]; ...delete[] p; 多谢诸位老大,只是darkhawk(hawk) 的发言我看不明白,能说详细一些吗?其他几位说的都已经了解了 tigerVC(Tiger.Z) 提供源码,多一点分,明天节贴,再次感谢! __CxxUnhandledExceptionFilter使用 如何获取Windows Media Player的播放状态? 请问CView::OnChar(nChar, nRepCnt, nFlags);有什么用? 请问一下大家我这个C/S方案能实现吗?? 不能打开头文件 在vc下不用mfc怎样方便设计界面、处理消息? 简单位运算~~~ 一个连续发100个数据包造成SOCKET阻塞的问题!!急呀!! 高分求获得面试机会(请留下EMail) 关于画图,请教:) 写了一个XPButton,但在对话框栏上却不能正常显示? vb如何调用vc的dll(在线等待不胜感谢!立即给分)
我想不清楚,主要是为了方便程序管理,我希望全局的越少越好
多谢回复!
.........
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();
}
STRUCTXXX a;
memset(&a, 0, sizeof(STRUCTXXX));new数组,在delete时注意一定要有[]
STRUCTXXX *p=new STRUCTXXX[100];
...
delete[] p;
其他几位说的都已经了解了
tigerVC(Tiger.Z) 提供源码,多一点分,明天节贴,再次感谢!