何时会生成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.设置指向虚基类对象的指针

相关文章:

  • 2022-12-23
  • 2021-10-19
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2021-06-08
  • 2021-05-23
  • 2021-08-04
猜你喜欢
  • 2021-07-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-19
相关资源
相似解决方案