无参空构造函数的用法

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:39:05
为什么我在通过一个类派生出另一个类的时候,基类不定义一个无参空构造函数派生类就会出错?那个无参空构造函数什么都没做啊在基类里。
问题是我不定义基类无参构造函数,在基类不出错,而在派生类出错?

肯定是你在派生类直接创建了基类对象,而不是通过基类重载构造函数创建对象,那样的话,创建的时候不能调用重载的构造函数,所以会出错,我遇到过的情况是这样,当时也找了好久没发现,你再仔细检查一下你的代码吧,或者就贴出来,大家一起看吧。

不会吧,
应该是你在基类里定义了别的构造函数,
将系统缺省的无参构造函数屏蔽了,然后你在派生类时,没有在派生类的构造函数成员初始化表里初始化基类构造函数吧

我印象中每个类都需要有 constructor 和 destructor.
constructor 可以有多个,但必须有一个默认的与类同名的无参constructor,尽管它什么都不做。
当你声明一个类的对象,程序就要调用constructor做初始化,“空”也算做了。

肯定是你写错了,c++没有这样的规定的。
把代码贴出来!!!

不写的话就是有默认的,但是,如果你含有const变量,引用变量,指针变量的话必须有构造函数对其进行初始化,我怀疑你就是这个问题,是不是有类似的成员变量?

把代码贴出来,这样更清楚些