首页 > 其他分享 ><二>派生类的构造过程

<二>派生类的构造过程

时间:2022-11-27 10:11:06浏览次数:52  
标签:初始化 成员 派生类 构造 基类 和析构 过程 构造函数

派生类从继承可以继承来所有的成员(变量和方法) 除了构造函数和析构函数
派生类怎么初始化从基类继承来的成员变量的呢?通过调用基类的构造函数来初始化

派生类的构造函数和析构函数,负责初始化和清理派生类部分
派生类从基类继承来的成员的初始化和清理由谁负责?是由基类的构造和析构函数来负责

派生类对象的构造和析构的过程是:
1:派生类调用基类的构造函数,初始化化从基类继承来的成员
2:调用派生类自己的构造函数,初始化派生类自己特有的成员

.....派生类对象的作用域到期了
3:调用派生类的析构函数,释放派生类成员可能占用的外部资源(堆内存,文件)
4:调用基类的析构函数,释放派生类内存中,从基类继承来的成员可能占用的外部资源(堆内存,文件)

class Base
{
public:
	Base(int data):ma(data){
	   cout<<"Base"<<endl;
    }
	~Base(){cout<<"~Base()"<<endl;}
protected:
	int ma;
};

class Derive : public Base
{
	public:
		Derive(int data):Base(data),mb(data){
	      cout<<"Derive"<<endl;
	    }
        ~Derive(){cout<<"~Derive()"<<endl;}
	private:
        int mb;
};

int main(){
     Derive d(20);
     return 0;
}

Base()->Derive()->~Derive()->~Base()

标签:初始化,成员,派生类,构造,基类,和析构,过程,构造函数
From: https://www.cnblogs.com/erichome/p/16928961.html

相关文章

  • 转:配置 SQL Server 2005 远程调试存储过程
    VS调试SQL存储过程的时候提示被用户取消 问题:   您工作的本机装有VisualStudio2005,局域网中有一台SQLServer2005数据库服务器,你想通过本机远程调试SQLServe......
  • 草根教程 网友详解索尼本本装雪豹过程
       安装环境:VPCEB100C、I3CPU、2G内存、5650显卡、320G硬盘、WIN7旗舰64位、VMwareWorkstation7.0.1build-227600。   所需软件:   1.MacOSX10.6.3光盘镜像......
  • 麒麟信安V3.4 安装PG15的过程V2.0
    改版说明上一次进行了PG的安装当时发现自己少加了一部分ossp的处理.这里补充上...不然挺浪费时间的.背景发现基于OpenEuler的几个系统使用CentOS的rpm包安装PG数据......
  • 构造方法的标准使用方法
      /*有参构造的使用方法:new后面的类名()括号内就是构造方法中你要传进去的实际参数构造器方法中的括号内的参数那都是形式参数*//*总结:使用构造器输出的基本操作......
  • 遍历学生类中的变量_通过有参构造
    /*需求:1.定义学生类2.创建集合对象3.创建学生对象4.添加学生对象到集合中5.遍历集合*/  *总结:就相当于是将学生类对象的变量放在集合中,在从for循环中将放在......
  • Vulnhub之Loly靶机详细测试过程
    Loly作者:Jason_huawen靶机基本信息名称:Loly:1地址:https://www.vulnhub.com/entry/loly-1,538/识别目标主机IP地址目标主机无法从Virtualbox自动获取IP地址,先参照......
  • Vulnhub之KiraCTF靶机解题过程
    KiraCTF作者:jason_huawen靶机基本信息名称:Kira:CTF地址:https://www.vulnhub.com/entry/kira-ctf,594/识别目标主机IP地址──(kali㉿kali)-[~/Vulnhub/KiraCTF]......
  • TypeScript之构造函数和this
     示例:classDog{name:string;age:number;//constructor被称为构造函数//构造函数会在对象创建时调用constructor(name:string,age:......
  • Java类加载过程
    ClassLoader的主要职责就是负责加载各种class文件到JVM中,ClassLoader是一个抽象的class,给定一个class的二进制文件名,ClassLoader会尝试加载并且在JVM中生成构成这个类的各个......
  • Vulnhub之KB Vuln 2靶机详细解题过程
    KBVuln2作者:jason_huawen靶机基本信息名称:KB-VULN:2地址:https://www.vulnhub.com/entry/kb-vuln-2,562/识别目标主机IP地址──(kali㉿kali)-[~/Vulnhub/KB_Vu......