• default constructor


    何时会生成default constructor?

     1、带有"Default Constructor"的Member Class Object。

      对于Class Object成员,编译器默认会调用此成员的默认构造函数。那么在哪调呢?答案是本对象的默认构造函数。所以编译器会生成Default Constructor。

     2、带有"Default Constructor"的Base Class。

      对于继承的情况,编译器默认会调用此类父类的默认构造函数。同上,在本对象的默认构造函数里调,所以需要生成Default Constructor。

     3、带有"Virtual Function"的Class。

      对于带virtual function的类,编译器会设置相应的v_ptr。同上,在本对象的默认构造函数里调,所以需要生成Default Constructor。

     4、 带有"Virtual Base Class"的Class。

      此情况同3类似。

    default constructor会做什么?

     1.调用这个对象的构造函数(只会调用默认构造函数,如果找不到,则会编译错误)
     2.调用基类的构造函数
       3.设置正确的虚函数表指针
       4.设置指向虚基类对象的指针

  • 相关阅读:
    Grafana、Prometheus、mtail-日志监控
    Grafana、Prometheus-监控平台
    vijos1062迎春舞会之交谊舞
    【模板】字符串哈希
    非递归方式打印4的全排列
    蚂蚁金服后端开发面试
    Intern Day163
    Intern Day156
    Intern Day153
    Intern Day153
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3107035.html
Copyright © 2020-2023  润新知