📄 mxdblist.h
字号:
/* ------------------------------------------------------------------------*/
/* */
/* MXDBLIST.H */
/* */
/* Copyright (c) MXSoft 1995, 1996 */
/* All Rights Reserved. */
/* Writen by MHW 1993 */
/* */
/* ------------------------------------------------------------------------*/
#if !defined (__MXDBLIST_H)
#define __MXDBLIST_H
#include <string.h>
// data base object for user inherit
class dataobj
{
public:
dataobj *prevobj;
dataobj *nextobj;
/* NOTE:
* you must overload this function to destroy your object,
* for examples, your has object 'MyObj' which drived from dataobj,
* the safeDelNode is here:
* void MyObj::safeDelNode( dataobj *toDel ) // himself
* {
* MyObj *cell = (MyObj *)toDel;
* // some code for free malloced memory
* delete cell;
* }
*/
virtual void safeDelNode( dataobj *obj ) const = 0;
virtual bool isEqual( dataobj * testobj ) const = 0;
};
class DBList
{
dataobj *firstobject;
dataobj *currobject;
dataobj *tailobject;
public:
int curpos;
int total;
DBList();
virtual ~DBList() { deleteAll(); };
dataobj *add(dataobj *);
dataobj *addAtHead(dataobj *);
dataobj *addAtTail(dataobj *);
void deleteAll();
bool deleteNode( int );
dataobj *findMember( dataobj * tofind );
bool hasMember( dataobj * obj );
dataobj *operator[](int order);
dataobj *forward( int steps = 1 ); // from cursor
dataobj *nextward( int steps = 1 ); // from cursor
dataobj *peekAt( int ); // from head
int tellAt()
{
return curpos;
}
dataobj *getcurrent()
{
return currobject;
}
void forEach( void (*func)( dataobj &, int & ), int &);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -