求教,类类型成员变量以及实例化的问题
新手,学习C++时间不长,编写程序的时候遇到了一个问题,希望大侠帮忙看一下
CConnection 是我自己定义的一个连接数据库的类,里面有连接数据的函数DatabaseLink();
我在一个新的Dialog类中希望调用这个函数
最初我是实例化一个CConnection对象 Link_choose,可以实现我的目的
void CMy000Dlg::OnStart()
{
CConnection Link_choose;
Link_choose.DatabaseLink();
_RecordsetPtr m_pRecordset;
CString sql;
sql.Format("select* from employees order by id desc");
m_pRecordset=Link_choose.GetRecordSet((_bstr_t)sql);
m_pRecordset->Move(2,vtMissing);
CString str;
str.Format("%s",((char*)(_bstr_t)m_pRecordset->GetCollect("name")));
m_text=str;
UpdateData(FALSE);
}
转而我又一想,能不能让Link_choose作为该对话框类的成员变量呢。
于是我进行了如下方式添加(之前的实例化对象的代码已经注释起来),希望可以在该类的其他函数中不用每次实例化一个对象,直接调用函数
class CMy000Dlg : public CDialog
{
// Construction
public:
CConnection Link_choose;
CMy000Dlg(CWnd* pParent = NULL); // standard constructor
…………
};
编译连接没问题,但是程序运行不起来,调试会出现如下报错Unhandled exception in 000.exe:0xC0000005:
Access Violation
网上查可能是因为没有分配内存的缘故,是因为作为成员变量的时候 没有分配内存么?具体是什么原因呢,不能用类作为成员变量么,怎么改就对了呢?不明白啊,谢谢哪位大神给我解释下,不胜感激。