2 leoe LEoe_ 于 2016.05.05 20:32 提问

关于继承时成员数据产生的歧义

图片说明
图片说明

1个回答

w_haili_wang
w_haili_wang   2016.05.06 00:09
已采纳

Doctor 和 Patient 用虚拟继承。
class Doctor:public Virtual Persion
class Patient:public Virtual Persion

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C++:多继承中的二义性问题
在派生类中对基类成员的访问应该是唯一的.但是,在多继承情况下,可能造成对基类中某个成员的访问出现了不一致的 情况,这时就称对基类成员的访问产生了二义性. 原因之一:    派生类在访问基类成员函数时,由于基类存在同名的成员函数,导致无法确定访问的是哪个基类的成员函数,因此出现了二义性错误。 例如: #include using namespace std; clas
《C++程序设计教程》——继承与多态
第3章 继承与多态3.1 继承3.1.1 继承的概念注意: 1. 基类的构造函数和析构函数不可以被继承。 2. 派生类继承了基类的全部数据成员和除了构造、析构函数之外的所有成员函数。派生类对于基类成员的继承是没有选择的,不能选择接收或舍弃基类中的某些成员。 3. 派生类中除了与基类同名的成员外还可以添加新成员,用于实现新功能,保证派生类的功能在基类的基础上的发展。 4. 多个派生类可以继承自
【编程语言】C++继承和派生类、虚基类
从已有的对象类型出发建立一种新的对象类型,使它部分或全部继承原对象的特点和功能,这是面向对象设计方法中的基本特性之一。继承不仅简化了程序设计方法,显著提高了软件的重用性,而且还使得软件更加容易维护。派生则是继承的直接产物,它通过继承已有的一个或多个类来产生一个新的类,通过派生可以创建一种类族。继承基本概念在定义一个类A时,若它使用了一个已定义类B的部分或全部成员,则称类A继承了类B,并称类B为基类...
继承与派生:派生类对基类成员的访问控制之公有继承
派生类从基类继承时有三个步骤,第一个步骤是吸收基类成员,吸收了基类中除构造函数和析构函数之外的所有数据成员和函数成员,第二个步骤就是修改基类成员,包括修改对基类成员的访问属性和覆盖基类成员,第三个步骤是添加新成员。第二个步骤中修改对基类成员的访问属性可以通过派生类的继承方式控制。       类的成员有public(公有)、protected(保护)和private(私有)三种访问属性。类的
C++ - 多重继承(multiple inheritance)歧义(ambiguous)
多重继承(multiple inheritance)歧义(ambiguous)   本文地址: http://blog.csdn.net/caroline_wendy/article/details/23737553   多重继承, 如果基类(base class)的成员函数名称相同, 重载(overload)函数调用, 会忽略public和private, 选取最佳的匹配函数, 匹配度相同, 则会造成歧义, 产出错误: reque
C++继承时派生类的成员访问属性
公用(public):访问权限最高;除派生类外,外部函数也可以直接访问(无论是成员变量还是成员函数)。 私有(private):访问权限最低;只能是该类内部函数互相调用,派生类、外部函数都不能访问。 保护(protect):访问权限中间;该类内部函数、派生类都能访问,外部类、外部函数不能访问  我们这样来记会更加容易一些,在继承时: 1、不管采用哪种形式(public
多重继承引发的二义性问题及解决方法分析
 首先了解: 1.类的继承:派生类拥有其基类拥有的所有数据成员与成员函数,但访问属性不同。 2.类的派生:派生类可以加入新的基类不拥有的数据与函数。   多重继承:一个类派生出多个类,多个类派生出一个类 性质与规则: 1.声明方法:class D:public A,private B,protected C{} 2.调用顺序:先调用A的构造函数,再到B,再到C。虚基类->非虚基
使用虚基数消除多重继承中的二义性
#include"iostream.h" class A { public:  int x; }; class B:virtual public A { public:  int y; }; class C:virtual public A { public:  int z; }; class D:public B,public C { public:  in
C++三大继承与多级派生
C++公用继承 1.1在定义一个派生类时把派生方式指定为public的,称为公用继承,派生类称为公用派生类,基类称为公用派生类。 1.2关于公用继承的一段代码: #include using namespace std; class student { public: void display(); void setValue(int number,
关于C++中公有继承、私有继承、保护继承的讨论
简单明了的理由,老生常谈但是没真正解决的问题,想搞清楚这个问题。