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

邯郸网站建设推广站长工具app官方下载

邯郸网站建设推广,站长工具app官方下载,公司网站建设公司排名,百度广州分公司靠谱吗【学习笔记】虚函数虚析构函数 1、虚函数 虚函数是类中使用 virtual 关键字声明的成员函数,它允许子类(派生类)重新定义(覆盖)该函数,从而在运行时根据对象的实际类型动态决定调用哪个版本的函数。 多态…

【学习笔记】虚函数+虚析构函数

1、虚函数

虚函数是类中使用 virtual 关键字声明的成员函数,它允许子类(派生类)重新定义(覆盖)该函数,从而在运行时根据对象的实际类型动态决定调用哪个版本的函数。

多态性是面向对象编程的三大特性之一(封装、继承、多态),指的是同一函数调用可以根据对象类型的不同,执行不同的操作。

class Base {public:Base();virtual ~Base();..........virtual int UpdataIP(MIO_JSON* pJson);
}int Base::UpdataIP(MIO_JSON* pJson) 
{return 0;
}

Base 类中有一个虚函数 UpdataIP,但是在这个类中这个虚函数并没有实际意义。但是Hahanode以及Hehenode继承了这个类,在这两个继承类中分别对这个函数做了不一样的操作。

class HahaNode : public Base {public:HahaNode();~HahaNode();int UpdataIP(MIO_JSON* pJson);
..........
}int HahaNode::UpdataIP(MIO_JSON* pJson) 
{// 实际操作
}class HeheNode : public Base {public:HeheNode();~HeheNode();int UpdataIP(MIO_JSON* pJson);
..........
}int HeheNode::UpdataIP(MIO_JSON* pJson) 
{// 实际操作
}

2、虚析构函数

​ 为什么一般将析构函数设置为虚函数。

​ 防止内存泄漏:当基类析构函数不是虚函数时,要是通过基类指针删除派生类对象,系统只会调用基类的析构函数,而不会调用派生类的析构函数。这就可能使派生类特有的资源(像动态分配的内存、文件句柄、网络连接等)无法被释放,进而造成内存泄漏。

虚析构函数的作用:把析构函数声明为虚函数之后,在运行时会依据对象的实际类型来决定调用哪个析构函数,而不是根据指针的静态类型。这样一来,当通过基类指针删除派生类对象时,派生类的析构函数会先被调用,接着基类的析构函数也会被调用,从而确保所有资源都能被正确释放。

#include <iostream>class Base {
public:Base() { std::cout << "Base Constructor" << std::endl; }// 若不声明为虚函数,可能会引发问题virtual ~Base() { std::cout << "Base Destructor" << std::endl; }
};class Derived : public Base {
private:int* data;
public:Derived() {std::cout << "Derived Constructor" << std::endl;data = new int[100]; // 动态分配内存}~Derived() override {std::cout << "Derived Destructor" << std::endl;delete[] data; // 释放派生类资源}
};int main() {Base* ptr = new Derived(); // 基类指针指向派生类对象delete ptr; // 调用虚析构函数,确保资源正确释放return 0;
}

结果:

Base Constructor        //创建基类构造函数
Derived Constructor     //创建派生类构造函数
Derived Destructor      //删除派生类析构函数
Base Destructor         //删除基类析构函数

如果基类析构函数不是虚函数,那么delete ptr只会调用Base::~Base(),派生类的析构函数不会被调用,data所占用的内存就无法被释放。

http://www.dtcms.com/wzjs/350672.html

相关文章:

  • 商城网站开发报价方案高级搜索引擎技巧
  • 目前网站开发有什么缺点宁波seo教程
  • 学校网站建设方案下载百度地图2022最新版
  • 做网站需要的注意事项搜索引擎营销的原理是什么
  • 专业做熟女的网站武汉网站seo推广
  • 哪里做网站的登封搜索引擎优化
  • 佛山网站搜索优化国内优秀个人网站欣赏
  • 站酷网网址深圳最新通告今天
  • php网站开发工程师网站建设seo优化培训
  • 西安企业网站建设价格软文网站名称
  • 网站开发团队人数构成网站优化包括
  • dede网站版权信息新媒体营销案例分析
  • wordpress建站很麻烦做百度推广的网络公司广州
  • 青岛建站培训怎么建设自己的网站
  • 网站的中英文切换怎么做的电商网站开发平台有哪些
  • 网站设计 线框图 怎么画百度数据网站
  • 58同城日照网站建设怎样在百度上发布自己的信息
  • 做网站需要哪些证书网址最全的浏览器
  • 外贸公司没网站 怎么做业务网站推广方案范例
  • 合肥响应式网站开发方案南京seo全网营销
  • 湿地公园网站开发招标湖南seo推广系统
  • 黄骅市属于哪个市seo关键词排名软件流量词
  • 零基础月做网站多久新闻软文自助发布平台
  • 网站规划html江苏网站seo设计
  • 深圳网站建设注册淘宝代运营公司
  • 地方购物网站盈利模式seo网站推广seo
  • 科技企业网站制作seo优化网站优化
  • wordpress 建企业网站杭州做百度推广的公司
  • 做房地产资质是什么网站查可口可乐网络营销案例
  • 手机上自己设计广告的软件优化推广什么意思