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

乡村生态旅游网站建设方案网站开发有很多种吗

乡村生态旅游网站建设方案,网站开发有很多种吗,有创意广告店名字大全,罗定网站建设在C中,创建任何一个对象(即使我们创建的是一个没有任何成员变量的对象)时,需要占用一定的内存空间。 应用程序会将可用的内存(排除源代码运行的内存等)分出两个部分:栈(stack&#x…

 在C++中,创建任何一个对象(即使我们创建的是一个没有任何成员变量的对象)时,需要占用一定的内存空间。

        应用程序会将可用的内存(排除源代码运行的内存等)分出两个部分:栈(stack)和堆(heap)。所以——在C++中创建对象有两种方式:在栈上创建对象和在堆上创建对象。

        在栈上创建的对象,有一个自动的生命周期,他们的生命周期由它声明的作用域所决定,换言之,只要变量超出了其作用域,该对象的内存就被释放了。

        在堆上创建对象则不同。在堆上创建的对象会一直待在那里,直到你决定把它释放,空闲出其对应的内存。( 用delete进行释放)

person类:

#include<iostream>
#include<string>
using String = std::string;class Person
{
private:String m_Name;
public:Person() :m_Name("Unknown") {}Person(const String& name) :m_Name(name) {}const String& GetName() const { return m_Name; }
};

在栈上创建对象personOnStack。

int main()
{{// 在栈上创建对象// 可以写为 Person personOnStack = Person("person1");Person personOnStack("person1"); // 打印名字 person1std::cout << personOnStack.GetName() << std::endl;} // 当代码运行到此行时,personOnStack将被回收

在堆上创建对象personOnHeap。​​​​​​

int main()
{{// 在堆上创建对象 关键词 newPerson *personOnHeap = new Person("person2");}// 打印名字 person1std::cout << personOnHeap->GetName() << std::endl;// 在堆上分配的对象要手动释放内存// 即 new 和 delete一起使用delete personOnHeap;return 0;
}

进阶版

int main()
{// 创建 Person 类型的指针Person *p1, *p2;{// 在栈上创建对象// 可以写为 Person personOnStack = Person("person1");Person personOnStack("person1"); // 在堆上创建对象 关键词 newPerson *personOnHeap = new Person("person2");/* p1指针指向 personOnStack 所在的内存地址* 在大括号之后 personOnStack 将被回收* 在大括号之后将获取不到 m_name = person1 的对象*/p1 = &personOnStack;/* personOnHeap赋值给p2* 在大括号之后 personOnHeap不会被回收* 在大括号之后将获取到 m_name = person2 的对象 */p2 = personOnHeap;}// 打印结果为空std::cout << p1->GetName() << std::endl;// 打印名字 person2std::cout << p2->GetName() << std::endl;// 在堆上分配的对象要手动释放内存// 即 new 和 delete一起使用delete p2;// 此处不需要delete p1的原因?return 0;
}

 如上代码所示,当代码运行到main函数中的大括号后,personOnStack对象被释放,所以p1获取到的m_Name为空;而在堆上创建的,personOnHeap对象没有被释放,所以p2能够正常获取m_Name。

        最后,p1不需要delete的原因——main函数中的大括号之后,personOnStack对象被释放,所以personOnStack对象的地址也被释放,p1指针不需要被delete。
 

http://www.15wanjia.com/news/180496.html

相关文章:

  • 淘宝客网站备案号做网站上传信息软件
  • 上海网站制作公司as3 xml 网站模板 下载
  • 网站建设服务器百度云百度云服务器
  • 朝阳网站建设培训石家庄网站制作网页
  • wordpress仿站入门wordpress提高访问速度
  • 用现成的php模板 怎么做网站久久建筑网安全吗
  • 网站公司怎么做运营商wordpress 写作主题
  • 网站程序系统做网站要学会什么
  • 怎样判断网站的seo信息好坏悟空建站seo服务
  • 免费网站下载app软件谷歌浏览器中文手机版
  • 做企业网站用二级域名好吗金乡网站建设多少钱
  • 新塘做网站wordpress定制后台图片上传功能
  • crm客户端廊坊首页霸屏优化
  • 龙里县建设局管方网站网站是如何制作的
  • 赤峰做网站建设的企业网站做实名验证
  • 歪歪小站 wordpress徐州企业网站排名优化
  • 建设工程网站单位名单电子商务网站建设实训报告文章
  • 只用php做网站wordpress icp链接
  • 网站电话素材湖南省交通建设质量监督站网站
  • 泰州网站建设优化建站如何建网站做传奇网友
  • 网站制作与建设书籍90设计网站可以商用吗
  • 素材搜集网站怎么查网站到期时间
  • 中小型网站建设内容网站制作方案策划简历
  • 南通网站建设方案咨询新手从零基础建站初级网站建设
  • 网站建设制作专业计量检测网站平台建设方案
  • 造作网站开发太原做彩票网站公司
  • net域名网站做asp网站的步骤
  • 安徽网站全屏网站模板制作
  • 网站建设佰首选金手指二五行业门户网站cms
  • 兰州市做网站的公司服务周到的网站建设