1.子类继承父类的继承方式:public,private,protected,不写则默认为private;

2.子类会继承父类的全部成员(除了构造函数、析构函数,虽然析构函数有virtual,但是不是继承的意思),全盘接受,没得选,不能只继承一部分,而不继承另一部分,这样就可能造成数据冗余,在继承时可能会继承了一大堆没用的东西,这个问题目前的c++也无法解决,所以继承时父类的选择要谨慎。但是,可以改变继承的成员在子类中的访问属性,即可能全盘继承了父类的成员之后访问不了!!!

3.

父类中的访问属性 继承方式 子类中的访问属性
private public/protected/private 不可访问
public public public
public protected protected
public private private
protected public protected
protected protected protected
protected private private

4.protected成员在本类内相当于private,但是在子类中就不一样了,子类中可以访问父类的protected成员。若某类声明了protected成员,就说明这个类可能要当作父类,是为了继承做准备的。

5.类外可访问类的public成员,不可访问类的private和protected成员。

6.构造函数是为了初始化类的数据成员,可以不自己定义,这样系统就会自动设置默认构造函数,也可以自己定义。因为构造函数不能继承,所以子类在初始化时要同时初始化父类,一般是在定义子类构造函数时调用父类的构造函数,声明子类构造函数时不用加上父类构造函数。

  形式:子类构造函数名(总参数表,即所有参数):父类构造函数名(参数表)

  {

     //子类新增成员初始化

  }

  e.g.student1(int n,string nam,char s,int a,string ad):student(n,nam,s)

  {

    //新增成员初始化

  }

  上述student为父类,student1为子类。

  这种方式其实和构造函数的初始化列表是一样的,如

  box(int h,int w,int l):height(h),width(w),length(len) { //新增成员初始化 }

  其实就是利用初始化表调用父类的构造函数,也可以将两者结合起来,即既有初始化表,也有父类构造函数调用,如

  student1(int n,string nam,char s,int a,string ad):student(n,nam,s),age(a),addr(ad) { }

  若一个类的数据成员中包括类对象,即对象中的对象,则可用如下方式定义:

  student1(int n,string nam,int n1,string nam1,string ad):student(n,nam),monitor(n1,nam1)

  {

  ...

  }

  上述monitor为student1中的对象(student类型的)。

7.子类和父类的转换:可以把子类的对象赋值给父类的对象,而不能反过来(没有指针的事)。

指向父类对象的指针也可以指向子类,但是只能访问子类中从父类继承的部分,不能访问子类自己新增的部分。若父类指针指向子类,则指针类型自动转换,由子类转为父类(e.g. father* p=new son;),这样,指针指向的就是子类中的父类部分。

8.类的组合:一个类中的数据成员包含另一个类的对象,类的组合是横向的,说明了是否拥有某一属性。类的继承是纵向的,说明了是否属于某一事物。组合和继承是软件重用的重要方式。

C++ 继承/派生、访问属性、构造函数的更多相关文章

  1. c++ 单继承派生类的构造函数

    1.派生类的构造函数: #include <iostream> #include<string> using namespace std; class Student//声明基 ...

  2. C++学习之路—继承与派生(一):基本概念与基类成员的访问属性

    (本文根据<c++程序设计>(谭浩强)总结而成,整理者:华科小涛@http://www.cnblogs.com/hust-ghtao,转载请注明) 1   基本思想与概念 在传统的程序设计 ...

  3. 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)

    [源码下载] 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成 ...

  4. C++:调整基类成员在派生类中的访问属性的其他方法(同名成员和访问声明)

    4.3 调整基类成员在派生类中的访问属性的其他方法 4.3.1 同名函数 在定义派生类的时候,C++语言允许在派生类中说明的成员与基类中的成员名字相同,也就是 说,派生类可以重新说明与基类成员同名的成 ...

  5. 3.3 C++改变基类成员在派生类中的访问属性

    参考:http://www.weixueyuan.net/view/6360.html 总结: 使用using声明可以改变基类成员在派生类中的访问属性. private: using book::se ...

  6. C++ 派生类成员的访问属性

    派生类成员的访问属性: C++继承方式总共分为以下几种:public.private.protected三种(它们直接影响到派生类的成员.及其对象对基类成员访问的规则).(1)public(公有继承) ...

  7. C++:继承访问属性(public/protected/private)

    • 公有继承(public) 公有继承在C++中是最常用的一种继承方式,我们先来看一个示例: #include<iostream> using namespace std; class F ...

  8. C++学习之路—继承与派生(二):派生类的构造函数与析构函数

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 由于基类的构造函数和析构函数是不能被继承的,所以 ...

  9. c/c++ 继承与多态 继承时如何改变个别成员的访问属性

    问题1:若类B以private的方式继承类A,但还想让类A的某些个别成员,保持public或者protected的访问属性,这时应该怎么办? 使用using,去改变访问属性. #include < ...

随机推荐

  1. linux文件读写 文件锁、select、poll【转】

    本文转载自:http://blog.csdn.net/fansongy/article/details/6853395 一.文件锁 文件锁用于多个用户共同使用或操作同一个文件.有读锁的时候可以再加读锁 ...

  2. 【转】Google 发布 Android 性能优化典范(比较老,但很实用)

    2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有 ...

  3. 虚拟机C盘扩容

    使用 <分区助手> 下载地址:http://115.com/file/belj8wkm

  4. P3162 [CQOI2012]组装

    传送门 退火大法好 我并不会正解于是只好打退火了--其他没啥好讲--只要对每一种颜色开一个vector,存一下所有这个颜色的位置,判定的时候可以去所有的颜色里二分找到前缀和后缀,把和当前点距离小的加入 ...

  5. ionic2 中隐藏子页面tabs选项卡的三种方法

    第一种: 隐藏全部子页面的tabs选项界面 找到app.module.ts文件 ,修改如下代码 imports: [ IonicModule.forRoot(MyApp,{ tabsHideOnSub ...

  6. Rabbitmq笔记二

    消息何去何从 mandatory 和 immediate 是 channel . basicPublish 方法中的两个参数,它们都有 当消息传递过程中不可达目的地时将消息返回给生产者的功能. 当 m ...

  7. JAVA值传递和引用传递 以及 实参是否改变

    八大数据类型和String 在进行传递的时候  不会改变. 八大数据类型 public class parameterValue { //值传递 public static void main(Str ...

  8. Python——nose实例示例

    1. 脚本示例: 执行结果: 2. 脚本示例: 执行结果: 由以上截图可以看出执行顺序: 大体可以得出如下结论: 1)测试的顺序总体上按照包—>模块—>类的顺序进行: 2) 然后按照测试用 ...

  9. [CERC2017]Buffalo Barricades

    这个题目,扫描线+玄学** 大概操作就是用个扫描线从上往下扫. 博主有点懒,就直接贴代码了,但是我还是给大家贴个比较详细的博客,除了代码都可以看wym的博客,我基本上就是按wym大佬的思路来的,当然, ...

  10. github下载下来的C#控制台小游戏[含源码]

    早就听说了github是世界最大的源码库,但自己却不是很懂,今天去研究了下,注册了一个帐号,然后在上面搜索了一下C# game,然后发现有许多的游戏. 随意地选择了一个,感觉比较简单,于是就下载了下来 ...