帮忙看看代码,该如何解决
帮忙看看代码
class AFX_EXT_CLASS CMyObjList : public CPtrList
{
};
class CDeviceMgr : public CMyObjList
{
};
CMav70Dev* CDeviceMgr::Create(int nCommPortNo, BYTE bPortId)
{
CMav70Dev *pdevice = NULL;
if (Add((CMyObject *)pdevice) == FALSE)
{
}
}
这是项目中的base代码,我的问题是这个add函数,没有任何实例调用它,pdevice它被会加到什么地方去呢?没有实例呀!
类CDeviceMgr和CMyObjList没有add的实现,是基类CPtrList的方法对吧。
代码编译一点问题也没有,奇怪!
------解决方案--------------------
要么是基类的方法,要么是全局的方法或系统系统的方法/。
------解决方案--------------------
(CMyObject *)pdevice能含有的信息量实在太少
猜不出Add能干什么...
------解决方案--------------------
怀疑是CPtrList 的public函数!
派生类是会继承的!!
------解决方案--------------------
八成是基类CPtrList的方法了..
比如函数原型可能是
BOOL Add(CPtrList *pPtr);
函数体里面可能是将pPtr添加到CPtrList类的一个指针list里(只是大概通过类名推测的..)
------解决方案--------------------
信息太少,应该是把pdevice添加到ptrlist对象里面,组成指针列表的一个函数吧
------解决方案--------------------
CMav70Dev这个类又是另一个子类?
你给的信息太少..猜也无从着手啊
也有可能在Add里new的一个基类对象,
BOOL Add(CPtrList * &pPtr); 通过引用可以返回该对象的指针
也有可能使该指针指向原本就有的一个什么对象
------解决方案--------------------
根据你的使用情况,估计函数原形是BOOL Add(CPtrList*& pPtr);如果 是这样的原形,那么应该会返回一个指针,即产生一个对象
class AFX_EXT_CLASS CMyObjList : public CPtrList
{
};
class CDeviceMgr : public CMyObjList
{
};
CMav70Dev* CDeviceMgr::Create(int nCommPortNo, BYTE bPortId)
{
CMav70Dev *pdevice = NULL;
if (Add((CMyObject *)pdevice) == FALSE)
{
}
}
这是项目中的base代码,我的问题是这个add函数,没有任何实例调用它,pdevice它被会加到什么地方去呢?没有实例呀!
类CDeviceMgr和CMyObjList没有add的实现,是基类CPtrList的方法对吧。
代码编译一点问题也没有,奇怪!
------解决方案--------------------
要么是基类的方法,要么是全局的方法或系统系统的方法/。
------解决方案--------------------
(CMyObject *)pdevice能含有的信息量实在太少
猜不出Add能干什么...
------解决方案--------------------
怀疑是CPtrList 的public函数!
派生类是会继承的!!
------解决方案--------------------
八成是基类CPtrList的方法了..
比如函数原型可能是
BOOL Add(CPtrList *pPtr);
函数体里面可能是将pPtr添加到CPtrList类的一个指针list里(只是大概通过类名推测的..)
------解决方案--------------------
信息太少,应该是把pdevice添加到ptrlist对象里面,组成指针列表的一个函数吧
------解决方案--------------------
CMav70Dev这个类又是另一个子类?
你给的信息太少..猜也无从着手啊
也有可能在Add里new的一个基类对象,
BOOL Add(CPtrList * &pPtr); 通过引用可以返回该对象的指针
也有可能使该指针指向原本就有的一个什么对象
------解决方案--------------------
根据你的使用情况,估计函数原形是BOOL Add(CPtrList*& pPtr);如果 是这样的原形,那么应该会返回一个指针,即产生一个对象