首页 > 其他分享 >子类包含父类成员的构造与析构顺序

子类包含父类成员的构造与析构顺序

时间:2024-03-08 14:55:52浏览次数:17  
标签:F1 函数 子类 析构 与析构 父类 构造函数

子类包含父类成员的构造与析构顺序

#include <iostream>
using namespace std;
class F1{
public:
    F1() {cout << "F1 构造函数" << endl;}
    ~F1() {cout << "F1 析构函数" << endl;}
};

class F2{
public:
    F2() {cout << "F2 构造函数" << endl;}
    ~F2() {cout << "F2 析构函数" << endl;}
};

class F3{
public:
    F3() {cout << "F3 构造函数" << endl;}
    ~F3() {cout << "F3 析构函数" << endl;}
};

class Son : public F2 , public F1 , public F3{
public:
    Son() {cout << "Son 构造函数" << endl;}
    ~Son() {cout << "Son 析构函数" << endl;}
    F1 f1;
    F2 f2;
};

int main() {
    Son s;
    return 0;
}

结果显示,先根据子类的继承顺序调用父类的构造函数,然后根据子类内部成员的声明顺序调用父类构造函数,最后才调用子类的构造函数。析构函数的调用顺序则相反。

F2 构造函数
F1 构造函数
F3 构造函数
F1 构造函数
F2 构造函数
Son 构造函数
Son 析构函数
F2 析构函数
F1 析构函数
F3 析构函数
F1 析构函数
F2 析构函数

 

标签:F1,函数,子类,析构,与析构,父类,构造函数
From: https://www.cnblogs.com/uacs2024/p/18060943

相关文章

  • 原子类
    原子类目录原子类什么是原子类,有什么作用6类原子类纵览Atomic*基本类型,以AtomicInteger为例常用方法Atomic*Array数组类型原子类Atomic*Reference引用类型原子类把普通变量升级为原子类:用AtomicIntegerFieldUpdate升级原有变量Adder累加器Accumulator累加器什么是原子类,有什么作......
  • C++多线程 第五章 C++内存模型和原子类型
    第五章C++内存模型和原子类型无论其他语言如何,C++是一门系统编程语言.委员会希望不再需要一个比C++低级的语言.内存模型基础C++程序中所有的数据均是由对象(object)组成的.C++标准定义对象为"存储区域",经管它会为这些对象分配属于它们的类型和生存期.无论什么类型,对象......
  • Java之泛型系列--继承父类与实现多个接口(有示例)
    原文网址:​​Java之泛型系列--继承父类与实现多个接口(有示例)_IT利刃出鞘的博客-CSDN博客​​简介本文介绍java如何用泛型表示继承父类并实现多个接口。用泛型表示某个类是某个类的子类或者实现了接口的方法为:<TextendsA&B&C> 用法1:全都是接口。对于本例来说:A、B......
  • java Atomic原子类&&常见并发容器
    Atomic原子类Atomic原子类介绍Atomic翻译成中文是原子的意思。在这里Atomic是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。所以,所谓原子类说简单点就是具有原子/原子操作特征的类。并发包 java.util.concurrent 的原......
  • JUC【1.原子类、2.锁Lock、3.阻塞队列、4.并发集合容器、5.并发工具类、6.线程池】、
    (JUC简介)转自极客时间1.JUC简介从JDK1.5起,JavaAPI中提供了java.util.concurrent(简称JUC)包,在此包中定义了并发编程中很常用的工具,比如:线程池、阻塞队列、同步器、原子类等等。JUC是JSR166标准规范的一个实现,JSR166以及JUC包的作者是同一个人DougLea。2.原......
  • 【Java基础】BlockingQueue及其子类
    ArrayBlockingQueue(数组实现的有界阻塞队列)特点:基于数组的有界阻塞队列,按先进先出(FIFO)原则排序元素。可以选择公平性(即按线程等待的先后顺序访问队列)或非公平性,默认是非公平的。用途:适用于需要固定大小的队列场景。LinkedBlockingQueue(链表实现的阻塞队列)特点:基于链表的可选边界(有......
  • 面相对象之多态和鸭子类型
    面相对象之多态和鸭子类型多态指的是一类事物有多种形态一、多态动态绑定(多态性)多态动态绑定在继承的背景下使用时,有时也称为多态性多态性是指在不考虑实例类型的情况下使用实例在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息不同的对象在接收......
  • 在Python中,子类继承父类并调用父类的构造方法有几种方式: 1. 如果子类没有重写`__init
    在Python中,子类继承父类并调用父类的构造方法有几种方式:1.如果子类没有重写`__init__`,实例化子类时,会自动调用父类定义的`__init__`¹。```pythonclassFather(object):  def__init__(self,name):    self.name=nameclassSon(Father):  passson=So......
  • zookeeper源码(06)ZooKeeperServer及子类
    ZooKeeperServer实现了单机版zookeeper服务端功能,子类实现了更加丰富的分布式集群功能:ZooKeeperServer|--QuorumZooKeeperServer|--LeaderZooKeeperServer|--LearnerZooKeeperServer|--FollowerZooKeeperServer|--ObserverZooKeeperServer|-......
  • 10构造函数与析构函数
    构造函数和析构函数#include<iostream>usingnamespacestd;classseqStack{private: int*_pstack; int_size; int_top;public: seqStack(intsize){ _size=size; _pstack=newint[size]; _top=-1; } ~seqStack(){ delete[]_pstack; _pstack......