构造函数说明为纯虚函数是没有意义的(构造函数说明为纯虚函数是没有意义的吗)

C

各位老铁们,大家好,今天由我来为大家分享构造函数说明为纯虚函数是没有意义的,以及不建议使用构造函数的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

  1. 为什么不可以直接使用类名调用构造方法
  2. 什么时候派生类构造函数不调用基类构造函数
  3. 构造函数可以在类体内中定义,也可以在类体外定义吗
  4. 构造函数说明为纯虚函数是没有意义的

为什么不可以直接使用类名调用构造方法

构造函数是在创建类对象实例的时候调用的,一般用来做成员的初始化。如果手动没有提供相应的构造函数,则自动生成一个默认构造函数。

什么时候派生类构造函数不调用基类构造函数

不存在不调用的时候。但基类有多个构造函数时,具体调用哪个是可以指定的。

构造函数可以在类体内中定义,也可以在类体外定义吗

声明必须在类体内,实现可以在类体外,但是必须用类域名。比如:

一:在类体内实现:classCAA{public://声明并实现构造函数CAA(intnData){m_nData=nData;}pirvate:intm_nData;}CAA::CAA(intnData){m_nData=nData;}

二:在类体外实现:classCAA{public:CAA(intnData);//声明构造函数pirvate:intm_nData;}//构造函数的实现CAA::CAA(intnData){m_nData=nData;}

构造函数说明为纯虚函数是没有意义的

构造函数不能是虚函数,更不能是纯虚函数。虚函数对应一个vtable,如果构造函数是虚函数,就需要通过vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找vtable,所以构造函数不能为虚函数。

OK,本文到此结束,希望对大家有所帮助。

C 多态

本文内容来自互联网,若需转载请注明:https://bk.66688891.com/12/115154.html