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

做网站的必要东莞网络推广代运营

做网站的必要,东莞网络推广代运营,网站数据分析建设,优化公司治理多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码 解决方式:将父类中的析构函数改为虚析构或者纯虚析构 虚析构和纯虚析构共性: 1.可以解决父类指针释放子类对象 2.都需要有具体的函数实现…

多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码 解决方式:将父类中的析构函数改为虚析构或者纯虚析构

虚析构和纯虚析构共性:

1.可以解决父类指针释放子类对象

2.都需要有具体的函数实现

虚析构和纯虚析构区别: 如果是纯虚析构,该类属于抽象类,无法实例化对象

虚析构语法: virtual ~类名(){}

纯虚析构语法:

virtual ~类名() = 0;

类名::~类名(){}

代码示例:

#include<iostream>
using namespace std;
#include<string>class Animal
{
public:Animal(){cout << "Animal的构造函数调用" << endl;}//利用虚析构可以解决 父类指针释放子类对象时不干净的问题/*virtual ~Animal(){cout << "Animal的虚析构函数调用" << endl;}*///纯虚析构	需要声明也需要实现    虚析构和纯虚析构只能有一个,故将上面注释//有了纯虚析构之后,这个类也属于抽象类,无法实例化对象virtual ~Animal() = 0;//纯虚函数virtual void speak() = 0;};Animal::~Animal()
{cout << "Animal的纯虚析构函数调用" << endl;
}class Cat :public Animal
{
public:Cat(string name){cout << "Cat构造函数调用" << endl;m_Name = new string(name);//堆区创建属性}virtual void speak(){cout << *m_Name<<"小猫在说话" << endl;}~Cat()//释放{if (m_Name != NULL){cout << "Cat析构函数调用" << endl;delete m_Name;m_Name = NULL;}}string *m_Name;
};void test()
{Animal* animal = new Cat("Tom");animal->speak();//父类指针在析构时候 不会调用子类中析构函数 导致子类如果有堆区属性 出现内存泄露delete animal;
}int main()
{test();return 0;
}

总结:
1.虚析构或纯虚析构都是用来解决通过父类指针释放子类对象
2.如果子类中没有堆区数据,可以不写为虚析构或纯虚析构
3.拥有纯虚析构函数的类也属于抽象类

http://www.wangmingla.cn/news/111293.html

相关文章:

  • 吉林省人民政府门户网站公司网址怎么制作
  • 推广做网站联系方式营销渠道分为三种模式
  • 手机版网站开发价格搜索引擎优化的常用方法
  • 网站开发一般用什么数据库泰州seo外包公司
  • 有哪些做微场景的没费网站安卓系统优化软件
  • 武汉网站建设哪家最好sem推广外包
  • php网站开发教程培训网店代运营可靠吗
  • 如何做网站的基础推广网站推广
  • 网站做端口是什么问题google商店
  • 在青岛做阿里巴巴网站找谁seo比较好的优化方法
  • 各种网站的区别seo排名优化公司
  • 成都定制网站建设人工智能培训班
  • dedecms双语网站seo网站推广排名
  • 江苏seo网站排名优化网站维护主要做什么
  • dede茶叶网站模板上海谷歌优化
  • 做外贸有那些网站平台seo博客大全
  • 天津如何做百度的网站云浮seo
  • 铜仁市建设局网站seo招聘
  • 网站拍照的幕布免费下载官方百度
  • 关于字体设计的网站网站建设公司是怎么找客户
  • 微信公众号的跳转网站怎么做760关键词排名查询
  • 小微网站建设接单平台腾讯网网站网址
  • 网站建设相关的网站互联网运营主要做什么
  • 台州网站制作营销型网站
  • 产品分类 网站模板十个有创意的线上活动
  • 超大网站制作素材大众网疫情最新消息
  • 携程网站建设的优缺点2023年九月份新闻
  • 网站低保图用什么做怎么在网上做推广
  • 网站 劣势百度问答库
  • 外贸商城 wordpress企业网站seo哪里好