首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于派生类构造函数调用基类构造函数的有关问题

2013-11-06 
关于派生类构造函数调用基类构造函数的问题本帖最后由 usa_5678 于 2013-11-05 09:18:24 编辑书本上说:1、

关于派生类构造函数调用基类构造函数的问题
本帖最后由 usa_5678 于 2013-11-05 09:18:24 编辑 书本上说:
1、派生类不能继承基类的构造函数!
2、实例化一个派生类的对象时,先调用基类的构造函数去实例化从基类继承来的成员。

派生类和基类虽然有继承关系,但本质上是两个独立的类

我的问题是:
1、若派生类没有继承基类的构造函数,在派生类实例化时为什么能调用另外一个类的构造函数?
2、实例化派生类时,基类并没有被实例化,基类当时作为一个数据类型而存在,为什么基类的构造函数能被其他类所调用?

[解决办法]
    首先我觉得你进入一个误区了,基类作为一个类,他的构造函数本身就可以被其他类调用,不管这个类是不是他的派生类,除非这个构造函数设置成私有的了,或者protected保护的(这种情况下构造函数只能被派生类调用)。

[解决办法]
派生类的构造是从基类的构造开始 楼主把派生类分为两个部分来看比较好 基类部分由基类构造 派生类部分由派生类构造
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

因为 

class child:public father

所以构造子类的时候必须构造父类,

我的问题是
1、为什么在给派生类实例化的时候,能调用父类的构造函数。子类和父类是两个独立的类。
2、书上说父类的构造函数是没有被子类继承的,那如何子类在实例化的时候,又能调用类外一个类的函数?

我认为2楼说的很对,在对派生类实例化时,需要调用基类的构造函数初始化其基类部分,因为派生类可以访问基类的非private部分,而构造函数是public 的所以可以访问。

基类的构造函数式public没有错,,可以访问也没有错,但是类要在实例化的前提下才能使用
类A   对象a
对象a.成员函数()这样才是完成了类中函数的调用,
我的问题一直就是:
基类的构造函数能被调用,那么在派生类实例化的时候基类实例化了吗?

派生类实例化的时候,分为两步,第一步是实例化基类部分,第二步是实例化派生类自己的数据成员,而基类部分的实例化就是调用基类的构造函数来完成的,就像我上面那个例子一样

绕来绕去又绕回来了,我就是问子类为什么能够调用基类的构造函数!!!
子类和基类虽然是继承关系,但两者本质上是两种不同的类啊,子类实例化要去调用基类的一个函数,那么首先基类实例化了吗?
要是基类没有实例化,子类又怎么能用去基类体中的函数?

反复这这个问题上纠结,构造函数是干嘛的啊,构造函数就是类提供给外部实例化类的对象的接口,如果不能调用类的构造函数,那么怎么实例化类。

热点排行