说明
,,在def。h文件中,对该宏进行了如下的定义
# define DECLARE_NO_COPY_CLASS(名称)\
,,wxDECLARE_NO_COPY_CLASS(名称);
而wxDECLARE_NO_COPY_CLASS的实际定义如下:
# define wxDECLARE_NO_COPY_CLASS(名称),,,\
,,私人:,,,,,,,,,,,,,,,,,,\
,,,,classname (const classname&);,,,,,,\
,,,,classname&运算符=(const classname&)
从上述的宏定义展开来看,将类的拷贝构造函数和等号操作运算符设置为私有成员函数,禁止了类外的任何拷贝。
用法
类底座
{
,DECLARE_NO_COPY_CLASS(底座)公共:
,底座();
,虚拟~底座();
};
展开如下:
类底座
{私人:
,,底座(const BaseFrame&);
,,BaseFrame&运算符=(const BaseFrame&)
公共:
,底座();
,虚拟~底座();
};
注意
,,在头文件中,函数的参数列表中的变量名并不重要,可以不写,函数的声明和实现的列表变量名可以不一样,但是变量的类型必须保持一致
IMPLEMENT_DYNAMIC_CLASS
代码
# define IMPLEMENT_DYNAMIC_CLASS (n, b),,wxIMPLEMENT_DYNAMIC_CLASS (n, b)
,,//单继承一个基类
# define wxIMPLEMENT_DYNAMIC_CLASS(名称、basename),,,,,,,,,,,,,,\
,,wxIMPLEMENT_CLASS_COMMON1(名称、basename名称:wxCreateObject),,,,,\
,,wxObject *名称::wxCreateObject (),,,,,,,,,,,,,,,,,,,,,\
,,,,{返回新名称;}
说明
对运行时类信息的支持,主要是确定一个对象是否属于一特定类的实现,或者从某一特定类派生出来的
该宏定义对于引入窗户。h头文件,会引起编译错误,需要慎用