谁能看到这段宏啊,解释好就给分!(20分)

L

lwaif

Unregistered / Unconfirmed
GUEST, unregistred user!
#define PCLASSINFO(cls, par) /
public: /
static const char * Class() /
{ return #cls;
} /
virtual const char * GetClass(unsigned ancestor = 0) const /
{ return ancestor > 0 ? par::GetClass(ancestor-1) : cls::Class();
} /
virtual BOOL IsClass(const char * clsName) const /
{ return strcmp(clsName, cls::Class()) == 0;
} /
virtual BOOL IsDescendant(const char * clsName) const /
{ return strcmp(clsName, cls::Class()) == 0 || /
par::IsDescendant(clsName);
} /
virtual Comparison CompareObjectMemoryDirect(const PObject &
obj) const /
{ return (Comparison)memcmp(this, &obj, sizeof(cls));
} /
PNEW_AND_DELETE_FUNCTIONS
 
让我给你解释解释,可能不够正确,好长时间没有弄过c++了。
1、cls,par宏参数,表是类及父类
2、class函数类静态函数,返回类名。
3、getclass,如果参数没有指定,则返回类名,如果指定,返回指定的对象的类名。
4、isClass,检查给定的对象是否是该类。
5、后面两个函数我就不多说了。
这些都是rtti有关的函数,请参看coject的定义,和参看mfc深入浅出,你将能看到这些
类似的代码,还有对象实例化代码。你一定会激动的。
 
老兄在玩 OpenH323 啊?
我说怎么会看起来这么眼熟呢 [:D]
 
参看侯的(深入浅出mfc),很好的东东。
 
顶部