派生类

论C++继承

主宰稳场 提交于 2019-12-01 07:26:17
C++继承 1;定义: 类的继承,是新的类从已有类那里获得的已有的特性。由原有的类产生新类时,新类便包含了原有的类的特征,同时也可以加入自己所有的新特性。原有的类称为基类和父类,产生的新类称为子类和派生类。 定义语法为: class 派生类:继承方式 基类名1,继承方式 基类名2,······ eg: class Base{ public; int a=2; }; class Derived:public Base{ public; int b=3; }; 使用继承的目的和作用:使代码看起来更加的简洁。 2:继承的三大分类 1:公有继承 2:私有继承 3:保护继承 1;公共继承;当类的继承方式为此时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。 2;私有继承:当类的继承方式为此时,基类中的公有成员和保护成员都以私有成员的身份出现在派生类中,而基类的私有成员在派生类中不可直接访问。 3:保护继承;基类的公有成员和保护成员都以保护成员的身份出现在派生类中,而基类的私有成员不可直接访问。 3;类型兼容规则: 在任何需要基类对象的任何地方,都可以使用公有派生类的对象来替代,在替代之后,派生类对象就可以作为基类的对象使用,但只能使用从基类继承的成员。 class B{.....} class D:public B{.....} B b1,*pb1; D

c++继承方式

五迷三道 提交于 2019-12-01 07:25:31
c++继承方式 派生类继承了基类中除了构造和析构函数外所有部分,并且基类成员在子类中访问属性取决于继承方式。c++类中的成员函数和变量有三种继承方式,分别为:公有继承(public),私有继承(private)和保护继承(protect)。 public:用该关键字修饰的成员表示公有成员,该成员不仅可以在类内可以被访问,在类外也是可以被访问的,是类对外提供的可访问接口; private:用该关键字修饰的成员表示私有成员,该成员仅在类内可以被访问,在类体外是隐藏状态; protected:用该关键字修饰的成员表示保护成员,保护成员在类体外同样是隐藏状态,但是对于该类的派生类来说,相当于公有成员,在派生类中可以被访问。 一、公有继承(public) 公有继承时,基类的公有成员和保护成员在派生类中属性不变,但私有成员不可直接访问。 基类成员对派生类对象的可见性为:基类的公有成员可见,保护成员和私有成员不可见,即通过派生类的对象只能访问基类的public成员。 所以,在公有继承时,派生类的对象可以直接访问基类中的公有成员,派生类的成员函数可以直接访问基类中的公有成员和保护成员。 #include<iostream> using namespace std; class point{ private: int x, y; public: void initpoint(float x1 = 0

C++中继承与派生

半世苍凉 提交于 2019-12-01 07:25:12
类的继承与派生 所谓继承结束从先辈处得到属性和行为特征。类的继承是新的类从已有类处得到已有的特性,从另外一个角度说就是已有类通过派生得到新类。 原有类称为 基类 ,新类称为 派生类或子类 。派生类同样也可以作为基类派生新类,这样就形成了类的层次结构。类的派生实际上说一种演化,即通过扩展,更改和特殊化,从一个已知类出发建立一个新类,通过类的派生可以建立具有共同关键特征的对象家族,从而实现代码的重用,这种继承与派生的机制对于已有程序的发展和改进是极为有利的。 派生类的定义 在c++中派生类一般定义的语法为: class 派生类名:继承方式(public/private/protected) 基类名1,.......{ 派生类成员声明; } ·一个派生类可以同时有几个基类,称为多继承;只有一个基类的情况下称为单继承。 ·继承方式规定类如何访问基类的成员。继承方式的关键词为:public/private/protected,分别表示公有继承,私有继承和保护继承。如果不显式的给出继承方式系统默认为私有继承。 ·在类的继承中,派生类包含了它的全部基类中除构造函数和析构函数之外的所有成员。 ·访问控制 ·公有继承 基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。 class Point { private: float x, y; public: void

继承与派生

若如初见. 提交于 2019-12-01 07:24:04
一、基本概念 1、类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。原有的类称为基类或父类,产生的新类称为派生类或子类。 2、派生类的声明: class 派生类名:继承方式 基类名1, 继承方式 基类名2,...,继承方式 基类名n { ​ 派生类成员声明; }; 3、一个派生类可以同时有多个基类,这种情况称为多重继承,派生类只有一个基类,称为单继承。直接派生,间接派生。 4、继承方式规定了如何访问基类继承的成员。继承方式有public, private, protected。如果不显示给出继承方式,默认为private继承。继承方式指定了派生类成员以及类外对象对于从基类继承来的成员的访问权限。 5、派生类继承基类中除构造和析构函数以外的所有成员。 6、派生类生成: 吸收基类成员(除构造析构函数以外的所有成员); 改造基类成员(根据继承方式调整基类成员的访问,函数在子类中的覆盖,以及虚函数在子类中的覆盖); 添加新的成员; 7、公有继承 当类的继承方式为公有继承时,基类的公有和保护成员的访问属性在派生类中不变,而基类的私有成员不可访问。即基类的公有成员和保护成员被继承到派生类中仍作为派生类的公有成员和保护成员。派生类的其他成员可以直接访问它们。无论派生类的成员还是派生类的对象都无法访问基类的私有成员。 8、私有继承 当类的继承方式为私有继承时

类的继承与派生——第七章总结

一笑奈何 提交于 2019-12-01 07:23:00
继承与派生———第七章总结作业 一、继承和派生的相关基本概念 [类的继承] :新的类从已有的类得到已有的属性的过程 [类的派生] :从已有类产生新类的过程 原有的类称为[基类]或[父类],新的类称为[派生类]或[子类] [多继承]:一个类可以有多个继承,反之只有一个继承的称为[单继承] //单继承 class 派生类名:继承方式 基类名{ 成员声明; } //多继承 class 派生类名:继承方式1 基类名,继承方式2 基类名...{ 成员声明; } 在类族中,直接参与派生出某类的基类称为[直接基类];基类的基类甚至更高层的基类称为[间接基类] 继承与派生是为了提高代码的 重用性 和 可扩充性 。【好处】 通过 继承 实现设计与代码的重用,通过 派生 实现当新问题出现并且不能用原有设计解决时进行对原有类的改造【目的】 派生类的生成过程: 1.吸收基类成员——吸收 除去构造函数和析构函数 之外的所有成员 2.改造基类成员——如果派生类声明了一个和某些基类成员同名的新成员,派生类就会隐藏外层同名成员,这被称为[同名隐藏] 3.添加新成员 [公有继承] :基类的公有成员public和保护类成员protected的访问属性在派生类中 不变 ,而基类的私有成员private不可以直接访问 [私有继承] :基类的公有成员public和保护类成员protected在派生类中 以私有成员身份 出现

C++第四次作业

百般思念 提交于 2019-12-01 07:22:55
类的继承与派生 一、定义: 1、保持已有类的特性而构造新类的过程交继承。 2、在已有类的基础上新增自己的特性而产生新类的过程称为派生。 注:继承和派生是同一过程从不同角度看。 二、目的: 1、继承的目的:实现设计与代码的重用。 2、派生的目的:当新问题出现,原有程序无法解决(或完全不能解决)时,需要对原有程序进行改造。 三、使用方式: 1、单继承时: class派生类名: 继承方式 基类名 {   成员声明; } 2、多继承时: class派生类名: 继承方式1 基类名1,继承方式2 基类名2,…… {   成员声明; } 注:多继承时需要把所有继承方式和基类列出。每一个“继承方式”只用于限制对紧随其后的基类的继承。 四、访问控制: 1、共有三种继承方式:(1)公有继承(2)私有继承(3)保护继承 2、不同继承方式影响主要体现在: (1)派生类成员对基类成员的访问权限 (2)通过派生类对象对基类成员的访问权限。 3、访问属性: (1)基类中 public 和 protected 成员的访问属性在派生类保持不变,但 基类的private成员不可直接访问 。 (2)派生类中的成员函数可以直接访问基类中的 public 和 protected 成员,但 不能直接访问基类的private成员 。 (3)通过派生类的对象访问从基类继承的成员, 只能访问public成员 。 五、例子: 1

C++语言程序化设计——第四次作业

旧街凉风 提交于 2019-12-01 07:22:54
C++语言程序化设计——第四次作业 第七章类的继承与派生 一、基础概念 类的继承:是新的类从已有类那里得到已有的特性。从已有类产生新类的过程就是类的派生。 通过类的派生可以建立具有共同关键特征的对象家族,从而实现代码的重用,这种继承和派生的机制对于已有程序的发展和改进,是极为有利的。 派生类的定义语法: class 派生类名:继承方式 基类名1,继承方式 基类名2,...,继承方式 基类名n { 派生类成员声明; }; 注意:一个派生类,可以同时有多个基类,这种情况成为多继承。 一个派生类只有一个直接基类的情况,称为单继承。 继承方式规定了如何访问从基类继承的成员。 派生类成员是指除了从基类继承来的所有成员之外,新增加的数据和函数成员。 派生类的生成过程: 吸收基类成员-->改造基类成员-->添加新的成员 二、访问控制 类的继承方式有 public (共有继承)、 protected (保护继承)和 private (私有继承)三种。 1)公有继承 当类的继承方式为共有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。 在类族之外只能通过派生类的对象访问从基类继承的共有成员,而无论是派生类的成员还是派生类的对象都无法直接访问基类的私有成员。 代码实例:从Point类中派生出新的Rectangle类。 基类Point: class Point {

C++中的继承

前提是你 提交于 2019-12-01 07:22:42
继承:龙生龙,凤生凤,老鼠儿子会打洞。 sizeof可以验证继承了基类中的所有成员变量 public 的继承方式,结合子类对象对基类成员函数的调用,可以得到子类对基类的成员函数继承(所有资源都被继承。基类中public成员在子类中权限也是public。) #include<iostream> using namespace std; class Base { //父类 public: void Set(int pri,int pro,int pub) { _pri = pri; _pro = pro; _pub = pub; } void Print() { cout << _pri << " " << _pro << " " << _pub << endl; } int _pub; protected: int _pro; private: int _pri; }; class Son1 : Base //子类 //无继承方式 { }; class Son2 : public Base //子类 //public继承方式 { public: void Set(int pri, int pro, int pub) { _pri = pri; //这句报错:在子类中访问私有的成员变量不可以访问。 _pro = pro; //保护可以访问 _pub = pub; } }; int

c++第四次作业

蹲街弑〆低调 提交于 2019-12-01 07:20:29
类的继承 所谓继承就是从先辈处得到属性和行为特征,类的继承,是新的类从已有类那里得到已有的特性。原有的类称为基类或父类,产生的新类称为派生类或子类。 公有继承 基类的公有成员和保护成员的访问属性在派生类中不变,派生类的其他成员可以直接访问它们,而基类的私有成员不可直接访问,无论是派生类的成员还是派生类的对象都无法直接访问基类的私有成员。 用以下例子证明: #include<iostream> using namespace std; class Point { public: void initP(float xx,float yy); void Move(float xOff,float yOff); float GetX(); float GetY(); private: float x; float y; }; void Point::initP(float xx,float yy) { x=xx; y=yy; } void Point::Move(float xOff,float yOff) { x=x+xOff; y=y+yOff; } float Point::GetX() { return x; } float Point::GetY() { return y; } class Rectangle:public Point { public: void initR

继承(C++语言)

混江龙づ霸主 提交于 2019-12-01 07:20:26
一、继承简介 C++ 中,当定义一个新的类 B 时,如果发现类 B 拥有某个已写好的类 A 的全部特点,此外还有类 A 没有的特点,那么就不必从头重写类 B,而是可以把类 A 作为一个“基类”(也称“父类”),把类 B 写为基类 A 的一个“派生类”(也称“子类”)。这样,就可以说从类 A “派生”出了类 B,也可以说类 B “继承”了类 A。继承是一种封装模型之间关系的抽象,是不同封装模型的层次分类。 一个类可以派生自多个类,这意味着,它可以从多个基类继承数据和函数。定义一个派生类,我们使用一个类派生列表来指定基类。类派生列表以一个或多个基类命名,形式如下: class derived-class: access-specifier base-class 继承关系的特点: A、子类拥有父类的所有属性和行为 B、子类也是一种特殊的父类 C、子类对象可以当父类对象使用 D、子类中可以添加父类没有的属性和方法 E、子类对象可以直接初始化为父类对象 F、子类对象可以直接赋值给父类对象 G、继承是面向对象编程中代码复用的重要手段 继承举例: #include <iostream> using namespace std; class Parent { public: Parent(int i = 0) { member = i; } void method() { cout <<