C++如何运行时遍历类成员,如果自己写基类如何实现,高手帮忙! 我想运行时遍历自己写的一个类的成员,要知道成员的类型与值,可没有思路,请高手指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用在sock数据自动组包中Add_Package(struct type & st)传入的结构自动加入到包用但我相写一个函数适应所有的结构 听说java的基类有这样的方法,不知道怎么实现的 干脆你在你的类中直接添加一个成员函数GetMember()那么你想怎么得到或得到什么都可以san 今天刚来,找了半天,不知道在哪里提问题?也不知道怎么给分,我有一个问题急呀!我在VC中已经可以将一个普通的文件存放到数据库的BLOB字段中,请问怎么将OLE文件存放到数据库中呀?哪位大侠曾经搞过,望指点,感激不尽! 哈哈,我来帮你实现!///////////////////////////struct SNode{ public: CBase* pData; SNode* pNext;// SNode() { pData = NULL; pNext = NULL; }};/////////////////////////////////////////////////////////////////////////////////////////////class CTotalList{public: CTotalList(){m_head = NULL;};public: void RemoveNode(CBase* pData); void InsertData(CBase* pData);public: SNode* m_head;}; void CTotalList::RemoveNode(CBase* pData){ if(m_head == NULL) return; SNode *pNodePre=m_head, *pNode; while(pNodePre->pNext!= NULL) { if(pNodePre->pNext->pData == pData) { pNode = pNodePre->pNext; pNodePre->pNext = pNodePre->pNext->pNext; delete pNode; } } }void CTotalList::InsertData(CBase* pData){ SNode * pNode = new SNode; pNode->pData = pData; if(m_head == NULL) { m_head = pNode; } else { SNode * pNodeLast = m_head; while(pNodeLast->pNext != NULL) pNodeLast = pNodeLast->pNext; pNodeLast->pNext = pNode; }}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////class CBase{public: CBase(); ~CBase(); private: void AddToTotalList();//对象加入遍历连表 void RemoveFromTotalList();//对象指针从遍历连表删除 public: static CTotalList m_lst;};CTotalList CBase::m_lst;CBase::CBase(){ AddToTotalList(); }CBase::~CBase(){ RemoveFromTotalList(); }void CBase::AddToTotalList(){ m_lst.InsertData(this); }void CBase::RemoveFromTotalList(){ m_lst.RemoveNode(this); }///////////////////////////////////////////////////////////////////////啊,终于写完了,呵呵,但是没有测试,请楼主代劳了!很久没有这么专心写了! ///////////////////////////struct SNode{ public: CBase* pData; SNode* pNext;//刚才这里是中文字符,编译不通过的 SNode() { pData = NULL; pNext = NULL; }};/////////////////////////// 呵呵,昨天晚上突然想起来要用虚析构//////////////////////////////////////////////////////////////////class CBase{public: CBase(); virtual ~CBase(); private: void AddToTotalList();//对象加入遍历连表 void RemoveFromTotalList();//对象指针从遍历连表删除 public: static CTotalList m_lst;}; 如果需要继承类 记得构造函数要调用CBase(); boost库能提供哪些功能呢,怎么资料都查不到? 为什么你们不用Visual Basic,反而用Visual C++呢? 求助有关vs2008进度条的问题! 一个小问题! 还是静态成员问题--在线等(100分) 高手帮忙,运行到GetDocument()时出错 关于cwnd的问题 如何快速復制數組 有没有人用过NDIS做中间层驱动?在下有个小问题请教。 请教抓取页面问题~ LNK4022 及 LNK1152 问题 关于串口通信的,大家帮我看看,为什么定时器涵数里面接受不数据那(急)
那么你想怎么得到或得到什么都可以san
我在VC中已经可以将一个普通的文件存放到数据库的BLOB字段中,请问怎么将OLE文件存放到数据库中呀?哪位大侠曾经搞过,望指点,感激不尽!
struct SNode
{
public:
CBase* pData;
SNode* pNext;
//
SNode()
{
pData = NULL;
pNext = NULL;
}
};
/////////////////////////////////////////////////////////////////////////////////////////////
class CTotalList
{
public:
CTotalList(){m_head = NULL;};
public:
void RemoveNode(CBase* pData);
void InsertData(CBase* pData);
public:
SNode* m_head;
}; void CTotalList::RemoveNode(CBase* pData)
{
if(m_head == NULL)
return;
SNode *pNodePre=m_head, *pNode;
while(pNodePre->pNext!= NULL)
{
if(pNodePre->pNext->pData == pData)
{
pNode = pNodePre->pNext;
pNodePre->pNext = pNodePre->pNext->pNext;
delete pNode;
}
}
}void CTotalList::InsertData(CBase* pData)
{
SNode * pNode = new SNode;
pNode->pData = pData;
if(m_head == NULL)
{
m_head = pNode;
}
else
{
SNode * pNodeLast = m_head;
while(pNodeLast->pNext != NULL)
pNodeLast = pNodeLast->pNext;
pNodeLast->pNext = pNode;
}
}
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
class CBase
{
public:
CBase();
~CBase();
private:
void AddToTotalList();//对象加入遍历连表
void RemoveFromTotalList();//对象指针从遍历连表删除
public:
static CTotalList m_lst;
};CTotalList CBase::m_lst;CBase::CBase()
{
AddToTotalList();
}CBase::~CBase()
{
RemoveFromTotalList();
}void CBase::AddToTotalList()
{
m_lst.InsertData(this);
}void CBase::RemoveFromTotalList()
{
m_lst.RemoveNode(this);
}///////////////////////////////////////////////////////////////////////啊,终于写完了,呵呵,但是没有测试,请楼主代劳了!
很久没有这么专心写了!
struct SNode
{
public:
CBase* pData;
SNode* pNext;
//刚才这里是中文字符,编译不通过的
SNode()
{
pData = NULL;
pNext = NULL;
}
};
///////////////////////////
//////////////////////////////////////////////////////////////////
class CBase
{
public:
CBase();
virtual ~CBase();
private:
void AddToTotalList();//对象加入遍历连表
void RemoveFromTotalList();//对象指针从遍历连表删除
public:
static CTotalList m_lst;
};
记得构造函数要调用CBase();