第14课 进阶面向对象(下)

1. 类之间的基本关系

(1)继承

  ①从已存在类细分出来的类和原类之间具有继承关系(is-a)

  ②继承的类(子类)拥有原类(父类)的所有属性和行为

(2)组合

  ①一些类的存在必须依赖于其它的类,这种关系叫组合

  ②组合的类在某一个局部上由其它的类组成

2. 类的表示法

【编程实验】类的表示法

#include <stdio.h>

struct Biology
{
    bool living;//生命
};

struct Animal : Biology
{
    bool movable;//可移动
    void findFood(){};//找食物
};

struct Plant : Biology
{
    bool growable;//可长大
};

struct Beast : Animal
{
    void sleep(){};//睡觉
};

struct Human : Animal
{
    void sleep(){};//睡觉
    void work(){}; //劳动
};

int main()
{
    return 0;
}

3. 小结

(1)类之间可以存在继承关系或组合关系

(2)继承关系中子类拥有父类的一切属性和行为

(3)组合关系是类之间整体和部分的关系

(4)类及类之间的关系可以有不同的表示法

(5)编译器对类的表示法有具体的要求

时间: 2024-10-12 18:36:55

第14课 进阶面向对象(下)的相关文章

第13课 进阶面向对象(上)

日常生活中,我们都习惯于对事物进行分类,那么这种分类思想是否可以引入程序设计中呢? 面向对象的基本概念: 类和对象的意义: 一些有趣的问题: 小结: 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9563375.html

【C++探索之旅】第二部分第一课:面向对象初探,string的惊天内幕

内容简介 1.第二部分第一课:面向对象初探,string的惊天内幕 2.第二部分第二课预告:掀起了"类"的盖头来(一) 面向对象初探,string的惊天内幕 上一课<[C++探索之旅]第一部分第十二课:指针一出,谁与争锋>中,大家辛苦了. 诚然,指针是不容易啃的硬骨头.不过,假以时日,小火慢炖,可以成为一碗上好的骨头汤,对你的C++水平那可是大补. 好了,口水擦一擦,我们正式进入C++探索之旅的第二部分啦,激动不?刚擦完的哈喇子可不要继续流啊. 这一部分的课程称为:C++之

C++--第14课 - 专题二经典问题解析

第14课 - 专题二经典问题解析 1. malloc与free和new与delete有什么区别? malloc和free是函数,new和delete是关键字. #include <cstdlib> #include <iostream> using namespace std; class Test { private: int i; public: Test() { cout<<"Test()"<<endl; i = 0; } Test

Spark3000门徒第14课spark RDD解密总结

今晚听了王家林老师的第14课spark RDD解密,课堂笔记如下: Spark是基于工作集的应用抽象,RDD:Resillient Distributed Dataset是基于工作集的,spark可以对结果重用. 位置感知:spark比hadoop更精致. RDD是lazy的,是分布式函数式编程的抽象,RDD可以看做一个只读的List或者Array.产生的中间结果怎么办? 不能让 他立即计算,采用Lazy级别,只对数据处理做标记.所以RDD操作是有向的,链式的,所以Stage有1000个步骤,不

第七课 GDB调试 (下)

1序言: 通过前面一节第六课 GDB调试 (下)文章,可以掌握理解了gdb调试:怎么启动.运行,打断点.查看变量.甚至改变变量等的知识,今天来大概讲解下调试bug的类型. 2知识点: 2.1 就像之前所说的没有任何一个程序员敢打包票自己写的代码是没任何bug,bug总会有意无意的出现在我们眼前,当程序运行结果于我们预期结果不一样的时候这时候我们就应该调试,总的来说bug分为:语法错误.逻辑错误.硬件异常: 3原理: 3.1 语法错误:一般情况下出现在编译的时候会有提示编译错误这时候我们就可以马上

数据-第1课-进阶高手的大门

第1课-进阶高手的大门 理解程序的本质 程序是为了实际的问题而存在从本质上而言,程序是解决问题的步骤描述. 问题: 怎样把大象放冰箱? (1)打开冰箱门 (2)把大象放进去 (3)关上冰箱门 Elephan* e = getElep(); int f = open("fridge"); put(f, e); close(f 首先理解实际问题 (1) 确认问题类型. 如:数值计算,求最小值个数. (2) 确认求解的步骤. 如:打开文件,读数据,关闭文件,计算和. 我们看一个求前n项和的程

C++--第22课 - 类模板 - 下

第22课 - 类模板 - 下 1. 类模板的局部特化 类模板可以定义多个类型参数 #include <cstdlib> #include <iostream> using namespace std; template<typename T1, typename T2> class Test { public: void add(T1 a, T2 b) { cout<<(a + b)<<endl; } }; int main(int argc,

2018-3-27 14周2次课 NFS(下)、FTP(上)

14.4 exportfs命令 ·更改nfs配置文件后,重启nfs服务,那么此时如果有远程客户端正在挂载共享目录,那么先停止nfs服务,就会导致远程客户端挂起. exportfs这个命令是和nfs-utils这个包一起安装的 exportfs: -a        全部挂载或者全部卸载 -r        重新挂载 -u        卸载某一个目录 -v        显示共享目录 -arv     一般同时使用 ·在服务端上更改/etc/exports 目录,增加一条共享目录 [[email

第14课 计算器核心解析算法(下)

1. 中缀到后缀的手工转换 (1)按优先级给表达式加括号 (2)从内向外将运算符移动对应的括号后面 (3)去括号,即可得到后缀表达式(如下图,图中数字表示转换顺序) 2. 后缀表达式求值 2.1 图解后缀表达式求值过程 (1)从左向右扫描后缀表达式. (2)遇到数字直接进栈 (3)重点在于遇到运算符时,要找到其左右操作数.(此图中有5个运算符,分别是*./.-.*.+) 2.2 求值步骤(利用栈来进行运算,注意栈只用来保存操作数,并不保存操作符) (1)当前元素为数字:进栈 (2)当前元素为运算