前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >6.C++初步分析类

6.C++初步分析类

作者头像
诺谦
发布2019-05-24 20:29:49
2430
发布2019-05-24 20:29:49
举报
文章被收录于专栏:Linux驱动

面向对象的意义在于:

  • -将日常生活中习惯的思维方式引入程序设计中
  • -将需求中的慨念直观的映射到解决方案中
  • -以模块为中心构建可复用的软件系统
  • -提高软件产品的可维护性和可扩展性

其中类和对象是面向对象中的两个基本概念

-类:指的一类事物,里面包括不同对象实体,是一个抽象的概念,比如:程序语言

-对象:指的是类里的具体实体,比如:程序语言(类)->java(对象)、C#(对象)等

-类用于抽象的描述一类事物所共有的属性行为

比如:

电脑,都拥有CPU/主板/内存/硬盘(共有属性),并且可以运行程序(共有行为)

对象

-对象指类里的具体事物,并且拥有描述类中的一切共有属性和行为

比如:

神舟电脑G50-F5型号,CPU是酷睿i5,内存8G,硬盘1TB等

神舟电脑G60-F7型号,CPU是酷睿i7,内存16G,硬盘1TB+128GB(固态硬盘)等

总结:

  • 类下面不一定存在实际对象,比如:恐龙(类),对象已经灭绝,没有一个对象
  • 类的对象数目不确定,比如:电脑(类),该对象数目不确定,美国总统(类),该对象当今只有一个
  • 不一定都来源于现实生活.
  • 类不是独立的,类与类之间也存在关系,比如:电脑(类)包括了CPU(类),主板(类)等,
  • 对象不一定只属于一个类,比如:二哈(对象),既属于哺乳动物(类),又属于犬科(类)

类与类之间的关系

继承

-父类子类之间具有继承关系,比如:车(父类)包括了汽车(子类)

可以这么理解,汽车一定是车,但是车不一定是汽车

-继承的子类拥有父类所有属性和行为

组合

-一些类的存在必须依赖于其它的类,这种关系叫组合,比如:电脑(类)包括了CPU(类)等

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

继承实例

以现实生活中的生物类为例:

如上图,在C++中,又如何通过程序来表达出来呢?

在C++中,通过struct表达,通过:表达继承,所以可以将上图改进为:

又通过变量表达属性,通过函数表达行为.

最终将生活中的例子体现在C++代码中:

代码语言:javascript
复制
#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() 
    {
       printf("I'm sleeping ...\n");
    }
    void work() { }
};


int main()
{
    Human  ZhangSan;        //创建对象
    ZhangSan.sleep();
    return 0;
}

未完待续,下章学习类与封装

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档