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

网站seo诊断分析百度广告商

网站seo诊断分析,百度广告商,免费传奇无充值,杭州建站模板1、new delete与malloc free区别 new delete是运算符,malloc free是函数。 前者不需要传入大小,后者需要。 前者会调用构造、析构函数,后者不会。 前者不需要强制转换,后者需要。 2、智能指针 智能指针是避免忘记释放动态申请对象…

1、new delete与malloc free区别

        new delete是运算符,malloc free是函数。

        前者不需要传入大小,后者需要。

        前者会调用构造、析构函数,后者不会。

        前者不需要强制转换,后者需要。

2、智能指针

        智能指针是避免忘记释放动态申请对象容易内存泄漏而设计的。主要特点是会在离开作用域会使用delete进行内存释放。实现原理也就是在构造函数中new对象,析构函数中delete对象。智能指针有share_ptr、auto_ptr、unique_ptr、weak_ptr。

auto_ptr,当使用拷贝或赋值构造函数时会将右值赋值给左值后将右值指针置零,局限性就在复制后不能使用。

unique_ptr,在auto_ptr的基础上直接禁用赋值和拷贝构造函数,这样从根本上解决了问题,但是赋值时会比较麻烦。

其中shared_ptr中有一个引用计数,用于记录多少个对象指向申请内存,析构这些对象时计数值减1,为0时候再释放动态内存。避免了重复释放的问题。但是会引出循环引用的问题:创建出来的两个对象通过shared_ptr相互指的时候析构时由于被别的对象指向所以计数值不为0,导致无法调用析构函数释放内存。解决办法是创建时使用shared_ptr,引用时使用weak_ptr。

shared_ptr实现原理(理解基本原理,细节没有处理):

#include <iostream>
#include <memory>using namespace std;class boy;
class girl;template<typename T>class my_shared_ptr
{public:my_shared_ptr(T *a){ref_cnt = 1;Type_Ptr = a;}my_shared_ptr(T &a){ref_cnt = 1;Type_Ptr = &a;}my_shared_ptr(){ref_cnt = 1;Type_Ptr = NULL;}void Release(){if(Type_Ptr&&((--ref_cnt) == 0)){delete Type_Ptr;Type_Ptr = NULL;}}~my_shared_ptr(){Release();}T* operator->(){return Type_Ptr;}T& operator*(){return *Type_Ptr;}my_shared_ptr& operator=(my_shared_ptr &target){if(this != &target){Release();Type_Ptr = target.Type_Ptr;ref_cnt = target.ref_cnt;target.Ref_Add();}return *this;}void Ref_Add(){ref_cnt++;}private:T *Type_Ptr;int ref_cnt;
};// 男孩类
class boy {
public:boy() { cout << "boy structure" << endl; }~boy() { cout << "~boy destruct"  << endl; }void set_girl_friend(my_shared_ptr<girl>& g) {girl_friend = g;}private:my_shared_ptr<girl> girl_friend; 
};// 女孩类
class girl {
public:girl() { cout << "girl structure" << endl; }~girl() { cout << "~girl destruct" << endl; }void set_boy_friend(my_shared_ptr<boy>& b) {boy_friend = b;}private:my_shared_ptr<boy> boy_friend;
};// 测试函数
void test() {// 定义共享指针,初始化指向新建的girl女孩类my_shared_ptr<girl> sp_girl(new girl());	// 定义共享指针,初始化指向新建的boy男孩类my_shared_ptr<boy> sp_boy (new boy());// 调用 sp_girl 指向 girl 的成员函数 set_boy_friend // 将 sp_boy 共享指针作为参数传递进成员函数sp_girl->set_boy_friend(sp_boy);// 调用 sp_boy 指向 boy 的成员函数 set_girl_friend// 将 sp_girl共享指针作为参数传递进成员函数sp_boy->set_girl_friend(sp_girl);
}int main(void) {// 调用测试函数test();return 0;
}

weak_ptr,不能改变引用计数,只能观察对象,不能直接使用*和->访问对象,需要通过lock()获得一个指向共享对象的shared_ptr,然后操作该共享指针。

http://www.yidumall.com/news/36251.html

相关文章:

  • 失效网站建设费支出快手推广网站
  • 手机app网站怎么接游戏推广的业务
  • 公司两学一做网站百度推广代理
  • 风景旅游网站建设的设计思路中国十大广告公司排行榜
  • 大连有几家做网站的公司苏州百度 seo
  • 2018做网站的软件百度快照是干嘛的
  • 国际商业网站深圳百度百科
  • 西安做网站公司玖佰网络想要导航推广网页怎么做
  • 哈尔滨行业网站建设策划网站seo优化外包顾问
  • 公司备案证查询网站查询网站查询站长工具官网域名查询
  • 网站建设与管理实践报告合肥seo按天收费
  • 开封市网站建设公司做百度seo
  • 天猫网站左侧菜单向右滑出的导航菜单淘宝权重查询入口
  • 网站icp备案要钱么搜狗收录入口
  • 网站建设具体步骤旺道营销软件
  • 上海大型企业名单seo排名优化推荐
  • 木马设计公司济南网络优化网站
  • 高端品牌网站建设兴田德润怎么联系百度云搜索引擎入口盘多多
  • 如何做旅游计划的网站常州谷歌推广
  • 网站为什么不被收录淘宝一个关键词要刷多久
  • 广元网站建设价格北京本地网络推广平台
  • 高校建设人事处网站的意义金融网站推广圳seo公司
  • 网站建设的经验天津seo诊断技术
  • 做旅游攻略比较好的网站廊坊seo排名霸屏
  • 阜宁专业做网站网页首页设计图片
  • wordpress插入广告百度seo费用
  • 创建一个网站的步骤百度app下载链接
  • 网站及新媒体建设宣传片网站友情链接自动上链
  • 做响应式网站设计图是多大的整站seo怎么做
  • 服装网站设计模板微信搜一搜seo