说明
创新互联建站网站建设公司,提供成都网站制作、网站设计、外贸网站建设,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!
在defs.h文件中,对该宏进行了如下的定义
#define DECLARE_NO_COPY_CLASS(classname) \
wxDECLARE_NO_COPY_CLASS(classname);
而wxDECLARE_NO_COPY_CLASS的实际定义如下:
#define wxDECLARE_NO_COPY_CLASS(classname) \
private: \
classname(const classname&); \
classname& operator=(const classname&)
从上述的宏定义展开来看,将类的拷贝构造函数和等号操作运算符设置为私有成员函数,禁止了类外的任何拷贝。
用法
class BaseFrame
{
DECLARE_NO_COPY_CLASS(BaseFrame)
public:
BaseFrame();
virtual ~BaseFrame();
};
展开如下:
class BaseFrame
{
private:
BaseFrame(const BaseFrame&);
BaseFrame& operator=(const BaseFrame&)
public:
BaseFrame();
virtual ~BaseFrame();
};
注意
在头文件中,函数的参数列表中的变量名并不重要,可以不写,函数的声明和实现的列表变量名可以不一样,但是变量的类型必须保持一致
IMPLEMENT_DYNAMIC_CLASS
代码
#define IMPLEMENT_DYNAMIC_CLASS(n,b) wxIMPLEMENT_DYNAMIC_CLASS(n,b)
// Single inheritance with one base class
#define wxIMPLEMENT_DYNAMIC_CLASS(name, basename) \
wxIMPLEMENT_CLASS_COMMON1(name, basename, name::wxCreateObject) \
wxObject* name::wxCreateObject() \
{ return new name; }
说明
对运行时类信息的支持,主要是确定一个对象是否属于一特定类的实现,或者从某一特定类派生出来的
该宏定义对于引入windows.h头文件,会引起编译错误,需要慎用
网页题目:wxWidgets第二课DECLARE_NO_COPY_CLASS禁止类的拷贝
文章出自:https://www.cdcxhl.com/article22/gisgjc.html
成都网站建设公司_创新互联,为您提供移动网站建设、响应式网站、网站营销、动态网站、全网营销推广、网站收录
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联