【C++深度剖析学习总结】 0 C++语言与面向对象思想

举报
CodeAllen 发表于 2021/10/29 23:41:42 2021/10/29
【摘要】 【C++深度剖析学习总结】 1 C++语言与面向对象思想 作者 CodeAllen ,转载请注明出处 前言 很多学习C语言的同学,顺理成章的想学习c++,认为有延续性,会简单很多,但是实际...

【C++深度剖析学习总结】 1 C++语言与面向对象思想

作者 CodeAllen ,转载请注明出处

前言

很多学习C语言的同学,顺理成章的想学习c++,认为有延续性,会简单很多,但是实际是c++只是继承了C语言的特性,但是自己也发展了很多特性,基本可以当做两门语言来学习了。

其中最重要的障碍就是面向对象思想,要从C语言面向过程的思维转变过来确实有点难度,但是现在很多C语言的项目也开始加入OO思想,主要就是为了减小开发难度,这也是一种进步和学习。

学习c++对于范式编程思维的提升很有好处,下边会花时间总结学习的一些知识,c++真的是不敢说精通啊!

C++的特点与OO思想

C++的特点

C语言有一个优点,即它的速度可以很快。写出来的程序可以很精练、简单、小巧,不用为了解决某个问题环绕太平洋一大圈。但如果将C和C++相比较,C++就经常会为了解决某个问题绕一个大圈,所以代码量相对较大,并且里边有一些不是必须的代码。但C++有个绝对的优势,就是针对不同的对象去做实例化,这就是所谓的OO思想。

什么是OO思想

在面对对象的思想中,任何事物都可以被看做一个对象。一个再复杂的模型结构都是由千千万万个对象组成的。这是根本思想。例如:地球可以看做一个相当复杂的对象。地球上的每种动物、每种植物、空气、水、土壤等都是对象。它们彼此之间互相联系、组合,最终形成了地球。而对于每个对象,抽象起来最终可以分为两个要素:属性和行为。

在面对对象编程中,程序员不再面对一个个函数和变量,而是要放眼大局,面对一个个对象来看问题。每个对象都是一个完整的独立的个体,它是由相关的属性和行为组合,与外界分隔。例如,一家跨国公司,它在全球有很多分公司,每个公司都有自己的员工和一套自己的运作体系。对于总公司而言,分公司好比“黑箱”,总公司不需干预分公司如何调配人员工作等,只需下达命令和指标。

面向对象是当前软件开发方法的主流,其概念和应用早已超越了程序设计和软件开发本身而扩展到更加宽广的范围。举个例子,例如我们的图形用户界面(GUI, Graphical User Interface)编程,面向对象在这方面的能力是相当出众,以至于人们在那些并不直接支持面向对象的语言(例如C)中也创建了一些模拟OO的软件结构,以便进行GUI编程。典型例子:GNOME/GTK+工具。

OO思想的特点

1. 封装

封装意味着把对象的属性和方法结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。
封装是面向对象思想描述的基础,从此程序员面对的就不再是许多复杂的函数和过程实现,而是少数具有行为能力的个体实例。

2. 抽象

抽象的过程是对具体问题进行概括的过程,是对一类公共问题进行统一描述的过程。为了使某些必要的信息得以顺利的交流,设计者必须制定一个抽象,就如同一个协议,一个得到所有参与活动的有效个体支持的协议。
例如面包房提供一个抽象——“订单”。

3. 继承

子类对象拥有与其基类相同的全部属性和方法,称为继承。这个事实上最容易理解:例如人都共有的一些属性:鼻子、眼睛、嘴巴……和一些方法:吃饭、睡觉、&&……可以由此基础上再整出亚洲人、欧洲人、非洲人……

4. 多态

多态是指在基类中定义的属性和行为被子类继承后,可以具有不同的数据类型或者表现行为等特性。**加入动物是一个基类,它的子类有老虎、兔子、狗、小鸟……那么作为动物有一个行为定义为Move(),那么这些子类继承下来后会根据自己的特性采取不同个性的Move()方式。

文章来源: allen5g.blog.csdn.net,作者:CodeAllen的博客,版权归原作者所有,如需转载,请联系作者。

原文链接:allen5g.blog.csdn.net/article/details/103542213

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。