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

黑客技术自学网站百度后台登陆入口

黑客技术自学网站,百度后台登陆入口,百度收录新网站,汕头seo计费管理在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.hkea.cn/news/332690/

相关文章:

  • 找印度人做网站sem竞价推广公司
  • 山西网站推广公司网站关键词优化怎么弄
  • 微信分销是什么重庆优化seo
  • 武汉企业网站推广方案永久免费无代码开发平台网站
  • 网站开发岗位群怎样推广产品
  • 桐城市美丽乡村建设专题网站石家庄整站优化技术
  • 北京建网站的公司哪个比较好郑州seo价格
  • 进空间的网站网络营销常见的工具
  • wordpress发文章的id怎么不连续如何做好搜索引擎优化工作
  • 交互式网站如何做seo推广软件排名
  • 西部建设网站惠州seo排名优化
  • 做环球资源网站有没有效果2024百度下载
  • 织梦 安装网站网站搭建需要多少钱
  • 做网站购买备案域名性价比高seo的排名优化
  • 潍坊中脉网站建设公司淄博seo公司
  • 深圳做网站推广哪家好青岛关键词优化平台
  • 呼和浩特市网站建设公司uc搜索引擎入口
  • 网站怎么做关键词搜索电子商务主要学什么内容
  • python做的网站漏洞百度竞价推广开户联系方式
  • 做任务换流量的网站怎么自己制作网页
  • 福清建设局网站火蝠电商代运营公司
  • 爱玖货源站在线智能识图
  • 上海网络营销软件windows优化大师win10
  • 专做美妆的视频网站ui设计
  • 平度市建设局网站济宁百度推广价格
  • 茶类网站建设方案西安网站seo排名优化
  • 南和县住房和建设局网站石家庄整站优化技术
  • 做教育网站销售的好吗成都百度网站排名优化
  • 展览展会网页模板下载河南网站优化排名
  • 自己做网站上传视频疫情二十条优化措施