C++公有继承

is-a、has-a和like-a、组合、聚合和继承 两组概念的区别 - cbk861110的专栏 - 博客频道 -CSDN.NET http://blog.csdn.net/cbk861110/article/details/9028189

公有继承强调的是is-a的关系,强调的是一种继承关系,而has-a强调的是一种从属关系。

继承的形式为:  class  derived:public  based

公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,只能通过基类的公有或保护成员访问。

派生类无妨继承基类的构造函数,因此,派生类必须定义自己的构造函数。

派生类构造函数在使用时:

1、必须先调用基类构造函数创建基类  Derived::Derived(....):Based( ){....}

2、派生类构造函数可以通过成员初始化列表将基类的信息传递给基类构造函数。

3、派生类构造函数应初始化派生类新增的数据成员

派生类过期时,必须先调用派生类的析构函数,在调用积累的析构函数  Derived::~Derived(){...... ~baesd();}

派生类与基类之间的关系

1、派生类只能调用基类的公有成员,对于私有成员则只能通过基类的公有成员或保护成员调用

2、基类指针和引用可以在不进行显示转换的情况下指向派生类对象,即:

①形参为基类引用(或指针)的函数,可以使用基类对象(的地址)或者派生类对象(的地址)作为实参

②可以用派生类对象初始化基类对象

3、基类引用或指针只能用于调用基类方法,不能用于调用派生类的方法

时间: 2024-10-13 01:40:03

C++公有继承的相关文章

C++公有继承,私有继承和保护继承的区别

昨天学习三种继承方式,有些比喻十分形象,特此分享. 首先说明几个术语: 1.基类 基类比起它的继承类是个更加抽象的概念,所描述的范围更大.所以可以看到有些抽象类,他们设计出来就是作为基类所存在的(有些名字里面有abstract的). 基类也叫父类,虽然本人觉得这个比喻并不恰当.因为实际上子类是基类的扩充,描述了更加具体的东西.但现实的父子关系并非如此.但在有些方面这个比喻还是比较恰当的. 现在我们假设基类是一个快要退休的富豪.代码如下: class RichMan { public: RichM

多态公有继承

多态公有继承:所谓多态公有继承,就是同一个方法在派生类和基类中的行为不同. 实现多态公有继承的机制:1,在派生类重新定义基类的方法.(用于对象)2,使用虚方法(多用于指针和引用),虚方法在基类用关键字virtual声明,在派生类中会自动识别基类中声明的虚方法.所以,在派生类中可以用(也可以不用)virtual显式标出哪个方法是虚方法.通俗来讲:为了实现一种方法可以在派生类和基类中的行为不同,于是在派生类中重新定义基类函数的方法(比如基类有方法A, 但又在派生类中重新定义了方法A, 它们名字一样,

关于C++中公有继承、私有继承、保护继承的讨论

一.文章来由 简单明了的理由,老生常谈但是没真正解决的问题,想搞清楚这个问题. 二.冗长的定义 我们先来看看这些冗长的定义: 公有继承: 当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问.也就是说基类的公有成员和保护成员被继承到派生类中访问属性不变,仍作为派生类的公有成员和保护成员,派生类的其他成员可以直接访问它们.在类族之外只能通过派生类的对象访问从基类继承的公有成员. 私有继承: 当类的继承方式为私有继承时,基类中的公有成员和保护成员

C++中公有继承、保护继承、私有继承的区别

公有继承时基类中各成员属性保持不变,基类中private成员被隐藏.派生类的成员只能访问基类中的public/protected成员,而不能访问private成员:派生类的对象只能访问基类中的public成员. 私有继承时基类中各成员属性均变为private,并且基类中private成员被隐藏.派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员:派生类的对象不能访问基类中的任何的成员. 保护继承时基类中各成员属性均变为protected,并且基类中p

概念:类继承—公有继承、私有继承、保护继承

一.公有(Pulic)继承 “继承”是类的重要特性.A类继承B类,我们称B类为“基类”,也称为“父类”,A类则相应地被称为“派生类”或“子类”.A类继承了B类之后,A类就具有了B类的部分成员.那么,究竟从基类那儿得到了哪些成员,这由2方面决定,①继承方式,②基类成员的访问权限(即public/private/protected). 继承有三种方式,即公有(Public)继承.私有(Private)继承.保护(Protected)继承.我们先讨论最常用的公有继承.公有继承就是将基类的公有成员变为自

C++:类的设计————公有继承

1.继承的概念 继承是c++的特性,其含义是从已有的类派生出新的类,而派生的类继承了基类的一些私有成员和成员函数. 公有继承是最为常用的继承方式. 2.公有继承的特点 派生类的对象继承了基类的私有成员,但是不可以直接访问(派生类继承基类的实现) 派生类的对象可以使用基类的成员方法(派生类继承了基类的接口). 继承的使用必须基于继承的这两个特点,举一个简单的例子. 假设有基类Player,描述一个运动员的姓名属性. class Player { private: std::string first

C++公有继承、保护继承和私有继承

C++中的继承方式有: public.private.protected三种(它们直接影响到派生类的成员.及其对象对基类成员访问的规则). (1)public(公有继承):继承时保持基类中各成员属性不变,并且基类中private成员被隐藏.派生类的成员只能访问基类中的public/protected成员,而不能访问private成员:派生类的对象只能访问基类中的public成员. (2)private(私有继承):继承时基类中各成员属性均变为private,并且基类中private成员被隐藏.派

public/protect/private和公有继承/保护继承/私有继承的简单理解

一.先来看一下没有继承的情况 类中的变量访问: (1)类内访问方式:通过public成员函数访问 (2)类外访问方式:直接访问 表 1 class A { public: int a; protected: int b; private: int c; public: int getAll(){ return a + b + c; } }; int main() { A testA; //类外访问方式 testA.a; testA.b; testA.c; //类内访问方式 testA.getAl

C++进阶--公有继承的二元性

//########################################################################### /* * 公有继承的两元性 * * - 接口的继承 * - 实现的继承 */ class Dog { public: virtual void bark() = 0; //只继承了接口 void run() { cout << "I am running."; } //既继承了接口,也继承了实现 virtual void