1,类之间的基本关系:

1,继承:

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

1,子类就是一个(is-a)父类;

2,继承是单向的;

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

2,组合:

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

1,同生死,共存亡;

2,组合的类在某一个局部上由其它的类组成;

2,类之间的基本关系:

1,继承:

2,组合:

3,类的表示法(生活中的概念用程序语言表达):

1,原始表达:

1,问题:

1,图的方式编译器读不懂,更改;

2,简化:

1,问题:

1,类之间的继承关系没有表示出来;

2,继承而来的属性和行为需要重复声明;

1,继承从概念上就使得子类拥有父类的一切属性和行为,重复申请没有意义;

3,改进 1:

1,问题:

1,需要使用划线来表示属性和行为,不适合于编程开发;

4,改进 2:

1,问题:

1,使用中文进行属性和行为的描述,绝大多数编译器无法接受;

5,改进 3:

1,思考:

1,如何用程序设计中的概念描述类的属性和行为?

1,变量和函数;

6,改进 4:

4,类的表示法编程实验:

1,main.cpp 文件:

  1. #include <stdio.h>
  2.  
  3. struct Biology {
  4. bool living;
  5. };
  6.  
  7. struct Animal : Biology {
  8. bool movable;
  9. void findFood() { }
  10. };
  11.  
  12. struct Plant : Biology {
  13. bool growable;
  14. };
  15.  
  16. struct Beast : Animal {
  17. void sleep() { }
  18. };
  19.  
  20. struct Human : Animal {
  21. void sleep() { }
  22. void work() { }
  23. };
  24.  
  25. int main()
  26. {
  27. return ;
  28. }

2,编译通过;

5,小结:

1,类之间可以存在继承关系或组合关系;

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

3,组合关系是类之间整体和部分的关系;

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

5,编译器对类的表示法有具体的要求;

C++中的面向对象(二)的更多相关文章

  1. 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型

    前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...

  2. 201871010105-曹玉中《面向对象程序设计(java)》第十二周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  3. 简单分析JavaScript中的面向对象

    初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...

  4. 2. 星际争霸之php面向对象(二)

    题记==============================================================================本php设计模式专辑来源于博客(jymo ...

  5. Cocos2d-x 脚本语言Lua中的面向对象

    Cocos2d-x 脚本语言Lua中的面向对象 面向对象不是针对某一门语言,而是一种思想.在面向过程的语言也能够使用面向对象的思想来进行编程. 在Lua中,并没有面向对象的概念存在,没有类的定义和子类 ...

  6. JavaScript面向对象(二)——成员属性、静态属性、原型属性与JS原型链

      前  言 JRedu 上一篇博客中,我们介绍了JS中的面向对象,并详细的解释了this的指向问题.本篇博客,我们继续来学习JS的面向对象.来深入理解一下JavaScript OOP中的成员属性/方 ...

  7. Day046--JavaScript-- DOM操作, js中的面向对象, 定时

    一. DOM的操作(创建,追加,删除) parentNode 获取父级标签 nextElementSibling 获取下一个兄弟节点 children 获取所有的子标签 <!DOCTYPEhtm ...

  8. python 全栈开发,Day52(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)

    昨日作业讲解: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉, ...

  9. Lua和C++交互 学习记录之九:在Lua中以面向对象的方式使用C++注册的类

    主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3  参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 在 ...

  10. Javascript面向对象二

    Javascript面向对象二 可以通过指定原型属性来对所有的对象指定属性, Object.prototype.name="zhangsan"; Object.prototype. ...

随机推荐

  1. elasticsearch 深入 —— 地理位置

    地理位置 我们拿着纸质地图漫步城市的日子一去不返了.得益于智能手机,我们现在总是可以知道 自己所处的准确位置,也预料到网站会使用这些信息.我想知道从当前位置步行 5 分钟内可到的那些餐馆,对伦敦更大范 ...

  2. Linux学习笔记2-CentOS7安装tomcat8

    1.下载tomcat:apache-tomcat-8.5.16.tar.gz 下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat ...

  3. printcap - 打印机相容性数据库

    总览 SYNOPSIS printcap 描述 DESCRIPTION Printcap 是 termcap(5) 的簡單版, 用來描述 line printers. 當用到 spool 系統時, 一 ...

  4. Codeforces Round #394 (Div. 2) - B

    题目链接:http://codeforces.com/contest/761/problem/B 题意:给定一个环形跑道.里面有n个障碍,跑道长度为L.然后有两个人在两个起点(起点可能相同),每个人都 ...

  5. 解决Minikube start卡住的方法

    安装与问题 在mac上安装minikube对k8s进行学习,根据官方Quick Start brew cask install minikube 就可以完成minikube的安装 在安装前需要安装vi ...

  6. Go 使用 append 向切片增加元素

    1.// 创建一个整型切片 // 其长度和容量都是 5 个元素 slice := []int{10, 20, 30, 40, 50} // 创建一个新切片 // 其长度为 2 个元素,容量为 4 个元 ...

  7. RESTful (俗称:api接口文档)

    整体规范建议采用RESTful 方式来实施. 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全. 域名 应该尽量将API部署在专用域名之下.https://api.exam ...

  8. 01.java8入门

    函数式编程的不变模式 import java.util.Arrays; /** * 函数式编程的不变模式 */ public class ArrStream { public static void ...

  9. 各类IP地址

    IPv4地址分类 折叠   A类IPv4地址 B类IPv4地址 C类IPv4地址 D类IPv4地址 E类IPv4地址 网络标志位 0 10 110 1110 11110 IP地址范围 1.0.0.0~ ...

  10. boost compressedPair

    boost::compressed_pair behaves like std::pair. However, if one or both template parameters are empty ...