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

贵阳网站托管网站优化排名网站

贵阳网站托管,网站优化排名网站,做网站的后台开发需要会些什么,沈阳快速排名优化前置知识#xff1a; new的类对象需要手动delete。且使用堆空间。且只能用指针接收。 直接创建的类对象创建在栈中#xff08;或说堆栈#xff09;。不需要手动delete#xff0c;随着生存周期的结束#xff08;如所在的函数return了#xff09;而释放#xff0c;和堆栈…前置知识 new的类对象需要手动delete。且使用堆空间。且只能用指针接收。 直接创建的类对象创建在栈中或说堆栈。不需要手动delete随着生存周期的结束如所在的函数return了而释放和堆栈空间一起释放了。 为什么要私有构造函数 把析构函数定义为私有的就阻止了用户在类域外对析构函数的使用。这表现在如下两个方面           1.   禁止用户对此类型的变量进行定义即禁止在栈内存空间内创建此类型的对象。要创建对象只能用   new   在堆上进行。           2.   禁止用户在程序中使用   delete   删除此类型对象。对象的删除只能在类内实现也就是说只有类的实现者才有可能实现对对象的   delete用户不能随便删除对象。如果用户想删除对象的话只能按照类的实现者提供的方法进行。           可见这样做之后大大限制了用户对此类的使用。一般来说不要这样做通常这样做是用来达到特殊的目的比如在   singleton单例模式   的实现上。 私有构造函数私有析构函数的几个例子 注意这里getInstance的实现不能保证单例。 例1 #include iostreamusing namespace std; class A {public:static A* getInstance() { return new A; }void Distroy() { delete this; }private:A() { cout construct A endl; }~A() { cout xigou A endl; } }; int main() {A* a_ptr new A;return 0; } 报错 error: calling a private constructor of class A 例2 #include iostreamusing namespace std; class A {public:static A* getInstance() { return new A; }void Distroy() { delete this; }private:A() { cout construct A endl; }~A() { cout xigou A endl; } }; int main() {A a;return 0; } 报错 error: calling a private constructor of class A error: variable of type A has private destructor 例3 #include iostreamusing namespace std; class A {public:static A* getInstance() { return new A; }void Distroy() { delete this; }public:A() { cout construct A endl; }private:~A() { cout xigou A endl; } }; int main() {A a;return 0; } 报错 error: variable of type A has private destructor 记住析构函数不能重载所以没法既定义public的也定义private的。 例4 #include iostreamusing namespace std; class A {public:static A* getInstance() { return new A; }void Distroy() { delete this; }public:A() { cout construct A endl; }private:~A() { cout xigou A endl; } }; int main() {A* a_ptr new A;return 0; } 正常输出 construct A 例5 #include iostreamusing namespace std; class A {public:static A* getInstance() { return new A; }void Distroy() { delete this; }private:A() { cout construct A endl; }~A() { cout xigou A endl; } }; int main() {A* a_ptr A::getInstance();a_ptr-Distroy();//这句没有也可以正常编译因为对象是new出来的所以需要手动deletereturn 0; } 正常输出 construct A xigou A 参考链接 https://blog.csdn.net/koudaidai/article/details/7546661
http://wiki.neutronadmin.com/news/318469/

相关文章:

  • 上海美容网站建设上海专业制作网站
  • 个人 可以做社交网站中国水土保持生态环境建设网站
  • 网站设计尺寸大小外贸网站建设需要什么
  • 如何让百度收录自己的网站wordpress资源下载站
  • 如何建设一个查询系统网站百度网盘下载安装
  • 浙江建站semi认证
  • wordpress建站网做程序网站需要什么代码
  • 网站如何不需要备案织梦增加网站英文名称
  • 怎么建网站新手入门建站需要什么软件
  • 网站建设的常见问题建设网站的技术性背景
  • 打开一个网站搜索页面跳转js怎样修改wordpress模板
  • 网站广告怎样做企业网站建设话术
  • 建设优化网站镇江市建设工程安全监督站网站
  • 较好的网站建设公司上海东方网首页
  • 网站开发项目说明书wordpress立即发布
  • 昌吉网站建设电话页网站设计
  • iis7站长工具北京门户网站建设公司
  • 天津市武清区网站建设上海网站建设公司 翱思
  • 小企业做网站选那种创建全国文明城市作文
  • 上海 网站建设 外包it网络维护简历模板
  • 太原网站建设斯飞网络禹州做网站的公司
  • 医院网站建设工作汇报辽宁省建设厅
  • 淘宝联盟推广可以做网站吗济南商城网站开发
  • 宁夏住房和城乡建设局网站用手机怎么打开电脑版的智慧团建
  • 自己怎么做网站啊免费网站入口2021
  • 求职网站建设那个网站都有做莱的图片
  • 公众号做微网站吗网站租用空间价格
  • 潍坊网站关键词做现货IC电子网站的
  • 网站建立的步骤是c语言也能干大事网站开发
  • 福州做网站制作帝国cms调用网站名称