我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合特码 > 多重继承 >

C++多重继承代码求解

归档日期:05-15       文本归类:多重继承      文章编辑:爱尚语录

  如果把我上面的//去掉。那么这个程序就可以编译运行,否则的话总是提示没有适当的构造函数。。帮我查是这是为什么。我用的是visual 6.0编译器~

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  你的子类person和父类teacher,cardre都没有默认的构造函数当然会出错。

  在创建子类的对象时,如果在子类的声明中没有显示的调用父类的构造函数则会调用父类的默认构造函数创建父类的对象,而你父类并没有默认构造函数,在子类中也没有明确调用父类的构造函数,所以不能创建子类对象。

  A(int i):B(2),C(2){coutAendl;} //注意这里,如果不使用:运算符明显的调用基类的带参数构造函数,则会出现没有基类的构造函数可用,因为不使用这个语句,就会调用基类的默认构造函数来初始化基类部分,而基类没有默认构造函数可用。这里要注意,一定要为其类的带参数构造函数给与初值,如果子类有多个构造函数,而基类没有默认构造函数时,子类的构造函数都必须像这样显示的调用基类的带参数构造函数,当然如果基类构造函数的所有参数都有默认值,那这个构造函数就是默认构造函数的另一个版本,可以不用明显的调用。

  具体情况,可以参考本人的文库的文章《C++继承,虚函数与多态性专题》在文章里有关于继承时的详尽解释。

  class person:public teacher,public cadre此句说明person为teacher和cadre的继承类。若无自己的构造函数系统不知选取那个。所以必须有自己的构造函数

本文链接:http://ticketsareus.net/duozhongjicheng/381.html