我在DLL内部声明基类CA和派生类CB,两个类仅仅用于DLL内部,不输出。
CA和CB都声明析构函数为虚函数,为啥析构时出错啊?
我把virtual去掉,就没问题。假定DLL的输出类,为CD,由于CD的头文件里需要CB作为变量,我在CD里定义了一个CB的指针,并
在该头件的开始处对CA和CB做前向声明。大致如下:
class CA
{
public:
virtual ~CA();
}class CB : public CA
{
public:
virtual ~CB();
}下面是DLL输出类的头文件:
class CA; //对CA和CB做前向声明
class CB;class __declspec(dllexport) CD
{
private:
CB* m_pCB;
}其余代码略,当m_pCB对象析构时,报错。
我也是VC熟手了,怎么今天遇见这么简单的问题啊,郁闷之至啊!
CA和CB都声明析构函数为虚函数,为啥析构时出错啊?
我把virtual去掉,就没问题。假定DLL的输出类,为CD,由于CD的头文件里需要CB作为变量,我在CD里定义了一个CB的指针,并
在该头件的开始处对CA和CB做前向声明。大致如下:
class CA
{
public:
virtual ~CA();
}class CB : public CA
{
public:
virtual ~CB();
}下面是DLL输出类的头文件:
class CA; //对CA和CB做前向声明
class CB;class __declspec(dllexport) CD
{
private:
CB* m_pCB;
}其余代码略,当m_pCB对象析构时,报错。
我也是VC熟手了,怎么今天遇见这么简单的问题啊,郁闷之至啊!
解决方案 »
- 为什么MFC中有些控件不支持相应接口
- 宽字符问题,谢谢
- 請教一下,,我想做兩個按扭,當點擊一個按扭時 這個按扭隱藏,另一個按扭顯示,反正亦然。。大家可能幫我一下嗎?
- 想看看 自己建的mfc doc/view 工程中类别型录网中每个元素的名字 怎么不行
- 求助啊!(MFC中文件夹的复制)~~~~
- dc到底是个什么概念?
- 为什么CListView 和 CTreeView 不能当作基类?
- 请问VB编程代码那么长,那么多,该如何记?。。是不是………………
- 如何给工具条和菜单加上背景图,急, 一定给分!!!
- 摄像头编程中如何得到每一帧的拍摄时间
- 双击文件时系统做了什么
- 请问如何实现access数据库加密后能顺利多用户读写该库
这也就把该类的虚函数的向量表给变为0,导致析构时,C++内部delete虚函数向量表时出错。
总结:在有虚函数的类里,严禁用memset初始化整个类为0