小甲鱼C++ 1 语言与思想介绍
写在前面:作为一只小白,感谢小甲鱼老师提供这么好的入门课程。因此在这里做个笔记,如有侵权请联系删除。
www.fishc.com
①C++的特点与OO思想
c语言有一个优点,即它的速度可以很快。写出来的程序可以很精炼,简单,小巧,不用为了解决某个问题环绕太平洋一圈
但是如果将C和C++相比较,C++就经常会为了解决某个问题绕一个大圈,所以代码里相对较大,并且里边有一些不是必须的代码。
但是C++有个绝对优势,就是针对不同的对象去做实例化,这就是所谓的OO思想。
②什么是OO思想
》》》在面向对象的思想中,任何事物都可以被看做一个对象。一个再复杂的模型结构都是由千千万万个对象组成的。这是根本思想。
例如:地球可以看作一个相当复杂的对象。地球上的每种动物,每种植物,空气,水,土壤等,都是对象。
》》》它们彼此之间互相联系,组合,最终形成了地球,而对于每个对象,抽象起来最终可以分为两个要素:属性和行为。
》》》在面对对象编程中,程序猿不再面对一个个函数和变量,而是放眼大局,面对一个个对象来看问题。
》》》每个对象都是一个完整的独立的个体,他是由相关的属性和行为组合,与外界分隔。
例如,一家跨国公司,它在全球有很多分公司,每个公司都有自己的员工和一套自己的运作体系。对于总公司而言,分公司好比“黑箱”,总公司不需要干预分公司如何调配人员互作等,只需下达命令和指标。
》》》面向对象是当前软件开发方法的主流,其概念和应用早已超越了程序设计和软件开发本身而扩展到更加宽广的范围。
举个例子:例如我们的图形用户界面(GUI)编程,面向对象在这方面的能力是相当出众的,以至于人们在那些并不直接支持面向对象的语言(例如C)中也创建了一些模拟OO的软件结构,以便进行GUI编程。典型例子:GNOME/GTK+工具。
③OO思想的特点
特点:
1、封装
封装意味着把对象的属性和方法结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。
封装是面向对象思想描述的基础,从此程序猿面对的就不再是许多复杂的函数和过程实现,而是少数具有行为能力的个体实例。
2、抽象
抽象的过程是对具体问题进行概括的过程,是对一类公共问题进行统一描述的过程。为了使某些必要的信息得以顺利的交流,设计者必须制定一个抽象,就如同一个协议,一个得到所有参与活动的有效个体支持的协议。
例如面包房提供一个抽象--------“订单”
3、继承
子类对象拥有与其基类相同的全部属性和方法,成为继承。
这个事实上最容易理解:例如人都共有的一些属性:鼻子,眼镜,嘴巴........和一些方法:吃饭,睡觉,打豆豆,。。。
可以由此基础上再整出亚洲人,欧洲人,非洲人.................
最后,可以创造出亚洲美女小红
4、多态:
多态是指在基类中定义的属性和行为被子类继承以后,可以具有不同的数据类型或者表现行为等特性。
假如动物是一个基类,它的子类由老虎,兔子,狗,小鸟。。。。。
那么作为动物有一个行为定义为Move()
那么这些子类继承下来以后会根据自己的特性采取不同个性的Move()方式。
小甲鱼C++ 1 语言与思想介绍相关推荐
- 数据结构与算法|马踏棋盘算法(小甲鱼)C语言代码的算法分析
马踏棋盘算法(骑士周游问题)的算法分析 C语言代码部分来自小甲鱼的<数据结构与算法> 文章目录 马踏棋盘算法(骑士周游问题)的算法分析 一.C语言代码实现 二.代码分析与算法思路 题目要求 ...
- 【跟着小甲鱼学C语言】P32 作用域和链接属性
作用域和链接属性 1.链接属性 链接属性有三种,external,internal和none.external表示这个标识符可以被多个文件访问,internal表示只能被本文件访问.默认情况下,具备文 ...
- 小甲鱼最新c语言视频,带你学c带你飞系列
https://www.bilibili.com/video/av8302677/?p=7
- 跟着小甲鱼零基础学C
先学一遍<小甲鱼的C语言教程>.25小时.基础,详细. 高数跟着宋浩老师,也是很基础. 有些东西捡起来不容易,但是不能因为不容易我们就不做.
- 考研C语言复习02(小甲鱼版本)
递归 //递归必须要有结束条件,否则程序将崩溃 void recursion(void); void recursion(void){static int cpunt = 10;printf(&quo ...
- 【小甲鱼C语言】课后笔记第一章第三节——常量和宏定义
目录 1.常见的常量 2.宏定义(符号常量) 3.标识符 4.字符串常量 5.课后习题(编程题) 1.常见的常量 整型常量:520, 1314, 123 实型常量:3.14, 5.12, 8.97 字 ...
- C语言学习(小甲鱼)
C语言学习(小甲鱼) 第二章:数据类型,运算符和表达式 2.1:数据类型,运算符和表达式1 2.2:数据类型,运算符和表达式2 2.3:数据类型,运算符和表达式3 2.4: 数据类型,运算符和表达式4 ...
- python小课文件_[Python]小甲鱼Python视频第030课(文件系统:介绍一个高大上的东西)课后题及参考解答...
# -*- coding: utf-8 -*- """ Created on Fri Mar 8 15:49:32 2019 @author: Administrator ...
- C语言程序设计笔记1(小甲鱼
一.打印 1.打印HelloWord #include<stdio.h> int main() {printf("HelloWord!\n");return 0; } ...
- 【小甲鱼】python零基础入门学习笔记 03讲~43讲
本篇基于[莫烦]python基础教程,属于查漏补缺 建议学习顺序 小甲鱼->莫烦numpy&pandas 目录 第003讲 插曲之变量和字符串 课堂笔记 变量 变量 需要注意的地方 字符 ...
最新文章
- PyTorch: 序列到序列模型(Seq2Seq)实现机器翻译实战
- NSArray排序问题
- java代码二进制转为十六进制_Java 中二进制转换成十六进制的两种实现方法
- hdu1261 JAVA
- java 时间api源码,时间API(示例代码)
- KMPLAYER无法播放rmvb格式的解决办法
- MySQL Performance-Schema(一) 配置篇
- MAC--PPTP教程
- TypeError: HashUpdate fail
- linux内核时钟驱动,4.9版本的linux内核中实时时钟芯片pcf85263的驱动源码在哪里
- QTP User-Defined Function 学习经验汇总
- 关于内置浏览器的问题
- Python使用傅里叶变换调整音频文件音量
- Hive大数据-Hive的架构---大数据之Hive工作笔记0003
- IBM Racetrack内存为移动设备带来1TB容量
- 安装虚拟机后无法获取 vmci 驱动程序版本句柄无效解决方法!
- 将Shapefile(SHP)转换为Surfer中的网格(GRD)的方法-通用方法。
- maven项目install报错:\target\surefire-reports for the individual test results
- ansible管理变量、机密和事实
- matlab 比较两个函数,Matlab同时拟合两个函数 - 数学 - 小木虫 - 学术 科研 互动社区...