当前位置: 首页 > wzjs >正文

潍坊制作网站的公司代刷网站推广链接免费

潍坊制作网站的公司,代刷网站推广链接免费,怎样自己做免费网站,文登建设局网站在C中,可以通过特定的技术手段来控制对象只能在堆(heap)或栈(stack)上创建。只能在堆上创建对象的类要实现这一点,我们需要阻止用户直接实例化对象,而只能通过new操作符创建。class HeapOnly { public:static HeapOnly* create() {return new…

在C++中,可以通过特定的技术手段来控制对象只能在堆(heap)或栈(stack)上创建。

只能在堆上创建对象的类

要实现这一点,我们需要阻止用户直接实例化对象,而只能通过new操作符创建。

class HeapOnly {
public:static HeapOnly* create() {return new HeapOnly();}// 删除拷贝构造函数和赋值运算符HeapOnly(const HeapOnly&) = delete;HeapOnly& operator=(const HeapOnly&) = delete;private:HeapOnly() {}  // 构造函数私有化~HeapOnly() {} // 析构函数私有化
};

原理

  1. 将构造函数和析构函数设为私有,防止直接实例化

  2. 提供静态工厂方法create()来创建对象

  3. 删除拷贝构造函数和赋值运算符防止复制

只能在栈上创建对象的类

要实现这一点,我们需要阻止用户使用new操作符创建对象。

class StackOnly {
public:StackOnly() {}/ 禁止普通的 new 和 deletevoid* operator new(size_t) = delete;void operator delete(void*) = delete;// 禁止 new[] 和 delete[]void* operator new[](size_t) = delete;void operator delete[](void*) = delete;// 禁止 placement new(防止绕过限制)void* operator new(size_t, void*) = delete;
};

原理

  1. 删除new和delete操作符的重载,使得无法使用new创建对象

  2. 仍然允许在栈上直接实例化对象

注意事项

  1. 对于只能在堆上创建的类,需要提供某种方式来释放内存,通常是在类中添加一个destroy()方法:

    void destroy() {delete this;
    }
  2. 这些技术在现代C++中可以通过=delete语法简洁地实现,但在旧版C++中需要通过声明为private并不实现的方式达到类似效果。

  3. 这些限制会影响类的使用方式,在设计时需要权衡灵活性和约束。

http://www.dtcms.com/wzjs/462470.html

相关文章:

  • 网站建设实训过程软文范例大全500字
  • 网站做推广要备案吗crm系统
  • gbk网站转utf8怎样免费建立自己的网站
  • 邵阳建设网站营销推广的作用
  • 做门户网站建设多少钱手机系统优化软件哪个好
  • 做网站的数据库网络事件营销案例
  • 加油优惠卡app软件开发宁波seo外包公司
  • 网站模板去哪要谷歌搜索引擎怎么才能用
  • 南京做网站哪家公司最好网站快速排名优化价格
  • 我自己做网站网络营销案例分享
  • 给政府做采购哪个网站平台海外推广是做什么的
  • 洛阳响应式网站建设磁力云搜索引擎入口
  • 网站规划建设与管理维护网站建设开发
  • 找人做销售网站企业网站建设价格
  • 外贸企业网站建设哪家好重庆seo代理计费
  • 网页设计构建的基本流程武汉seo建站
  • 免费网站做seo广州网站优化公司
  • 昆明大型网站建设百度手机助手下载安卓
  • 淄博网站建设电话友情链接购买平台
  • 哪个网站做外贸seo外包公司费用
  • 昌平做网站公司河南seo外包
  • 网站建设费用摊销会计分录企业网站建设方案
  • 昆明网站排名优化价格推销产品怎么推广
  • 游戏代理300元一天单页网站seo优化
  • 建设银行网站登录本网站三天换一次域名
  • dede 网站地图 调用文章18款禁用看奶app入口
  • 国际实时新闻百度关键词网站排名优化软件
  • 吉林网站开发广西seo快速排名
  • 自己做网站推广产品微信管理
  • linux做ppt下载网站市场调研报告