declare_basefun(宏定义) - Lucky-Koishi/KoishiExAPI GitHub Wiki
#define declare_basefun(_member,_type) protected:_type _member;public:inline type get##_member() const{return _member;}inline type * getPtr##_member(){return &member;}inline void set##_member(_type val){_member=val;}
此宏用于为一个类声明一个较为简单的成员属性,以及三个内联函数set_XXX, get_XXX, getPtr_XXX分别用于修改变量,获得变量值以及变量指针。例如:
declare_basefun(a,int);
等价于:
protected:
int a;
public:
inline int get_a() const{
return a;
}
inline int * getPtr_a(){
return &a;
}
inline void set_a(const int &val){
a = val;
}
注意,该声明方法不适用于未进行重命名的指针,例如char*,若需要用该声明方法声明一个指针,则应该先用typedef将指针重命名,例如:
typedef char *pchar;
declare_basefun(a,pchar);{
KoishiEx库中较为简单的辅助类都以这种方式进行成员属性的声明,包括color、point、size、IMGindex、PICinfo和DDSinfo。