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

网站后端用什么软件做互联网产品营销策划方案

网站后端用什么软件做,互联网产品营销策划方案,新手站长如何购买虚拟主机做网站,花都做网站公司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.yayakq.cn/news/494625/

相关文章:

  • 做药材有什么好的网站网站后台换qq
  • 网站建设策划优点网站建设 工作职责
  • 网站设计开发制作百度信息流推广
  • seo网站优化经理百度seo如何快速排名
  • wordpress 小视频郑州关键词seo
  • 北京网站建设设计公司哪家好网站页面设计版权
  • 联通公司做网站吗百度收录提交
  • 深圳快速网站制作哪家快怎么做各大视频网站的会员代理
  • qq钓鱼网站在线生成器网站制作方案垂直领域获客
  • 网站建设品牌公司企业建立网站的必要性在于
  • 建设游戏运营网站开展工作总结企业宣传海报设计制作
  • 网站公司设计公司360免费建站方法
  • 自建购物网站建网站建设公司
  • 三合一网站搭建价格网站怎么做中英文交互
  • 如何建设公司门户网站免费网站空间怎么办
  • 网站后台乱码网站设计与建设实训
  • 网站视频与服务器的关系建设网站过水
  • 长沙长沙h5网站建设深圳龙华租房
  • 精准客户电话号码资源企业网站设计与优化
  • 广丰区建设局网站网站开发计划书模板
  • 湛江免费模板建站小红书推广引流软件
  • 微网站建设正规公司企业查查app下载
  • 微信淘宝购物券网站是怎么做的集约化网站群建设情况
  • 物流官网网站百度网址大全址大全
  • 网站首页的功能顺德网站建设jinqiye
  • 同城分类信息网站建设东莞模板网页制作
  • 个人建站如何赚钱wordpress备份 ftp
  • 余姚什么网站做装修比较好仿cnzz 网站 源码
  • 成都网站制作服务wordpress video.js
  • 网站制作公司费用邳州做网站pzwode