龙空技术网

韦东山第4期Android视频-C++快速入门-第2课第1/2节

嵌入式范范 78

前言:

眼前小伙伴们对“c语言程序设计第4版郑莉”大概比较关怀,朋友们都想要知道一些“c语言程序设计第4版郑莉”的相关文章。那么小编同时在网上汇集了一些关于“c语言程序设计第4版郑莉””的相关内容,希望同学们能喜欢,同学们一起来学习一下吧!

该系列文章主要整理了C++相关的知识点。对我个人而言,学习C++是为了能阅读理解Android源码里的C++代码,进而理解Android系统为什么要使用C++,并且是如何利用C++实现特定功能的。在Android实战中加深对C++的理解,边学边用,这样学习的效率才是最高的。

C++系列往期文章:

韦东山第4期Android视频-C++快速入门-第1课第1节_c++类的引入-学习笔记

参考:

《韦东山第4期教学视频-Android-C++快速入门-第2课第1节_c++基础知识_访问控制》

《韦东山第4期教学视频-Android-C++快速入门-第2课第2节_c++基础知识_程序结构》

《C++语言程序设计(第3版本)》郑莉,大学入门教材,浅显但是有些知识点解释不清楚。

代码下载:

抽象性

什么是类和对象?

类是一类对象的模板,对象是类的具体实例,举个例子:

类通过抽象而来的,抽象是面向对象的一个重要思想。

封装性

C++中,类里的变量和函数都被称为类成员,变量被称为数据成员,函数被称为成员函数。

类成员的3种访问属性:

public: 类里类外都可以直接访问;

private: 只能被类里的成员函数访问,类外不能直接访问,但是可以借助public的成员函数间接去访问private数据成员;

protected: 如果不涉及继承,用法和private类似,但是被继承后情况就不一样的。继承分为公有继承、私有继承、保护继承,不同的继承方式对protected修饰的成员的影响不一样。目前不需要太深入了解,等后面学习到继承的概念后再展开说明。示例代码:

this指向调用函数的当前对象。

什么是封装性?

通过上述3种访问属性,将类的内部实现封装起来。简单的形容就是"不要告诉我你是怎么做这个工具的,只要你教会我怎么用这个工具就行了",封装的优点如下:

将变化隔离便于使用提高重用性提高安全性

类的概念只是封装的其中一个表现而已,包/组件/框架等也符合封装的思想。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取:加微信领取资料

程序结构内联函数

C++中,如果成员函数是在类的实现的,这个函数被称为内联函数,内联函数的函数体会在编译时被插入到每一个调用它的地方,这样会提高运行效率,但是是增加空间开销,只有简单的成员函数才适合声明为内联函数。

内联函数有2种声明方法:隐式声明和显式声明。

隐式声明是函数体直接放在类内,如下:

显式声明,效果和隐式声明一样:

在类外实现成员函数

类里一般只定义成员函数,而将函数的实现放在类外面,如下:

类有封装的特点,所以对于类的的调用者来说,只关心类对外提供的什么API,而不在乎这些API是怎么实现的,所以将类的定义和类的实现分别写在.h和.cpp文件里,可以让程序的结构更清晰,对调用者更友好,如下:

命名空间

一个项目通常都不会仅由一个人来开发完成,不同的人开发同一个系统,不可避免地会出现变量或函数的命名冲突,当所有人的代码各自测试没有问题后,将所有人的代码结合到一起,就有可能因为变量或函数重名而导致编译报错。

命名空间是C++提供的一种解决标识符名字冲突的方法。一个命名空间就是一个作用域,在不同名字空间中命名相同的标识符代表不同的实体。命名空间本质上就是一片被命名的内存区域,里面的东西通过空间名+标识符名的方式被调用,如下:

.h文件里的定义位于namespace里,那么.cpp文件中的实现也要保存在对应namespace里

。通过.h可以反推出.cpp里的内容,这里不再贴cpp的代码。

上面的例子中Person这个类并没有跟其他标识符冲突,每次都A::Person来创建对象太麻烦了。简化的方法是用using关键字来导入标识符:

也可以直接导入整个A空间,那么只要程序里调用的标识符跟A空间里的标识符一致,都会采用为A空间里定义的标识符,如下:

如果有人头脑发热,想要这样做:

位于std命名空间的C++标准程序库

std是standard的缩写,C++标准程序库中的所有标识符都被定义于一个名为std的namespace中,例如:

标准库里最常用的2个标识符就是cout和cin,cout和cin是什么?

C++中数据的输入和输出是通过stream类来实现的。cout是一个ostream类的对象,它有一个成员运算符函数operator<<,运算符<<的功能被重载了,被重载成每次cout执行<<时,就会将<<后面的数据输出到标准输出中。对于cin,则是istream流类的对象,其重载了>>运算符。

参考:

重载的概念目前理解不了是正常的,有一点基本概念就行了,重要的是会用cout和cin来输出和输入数据,如下:

格式化输出

参考:

下一篇的内容:重载、指针、引用。

文章链接:

转载自:老吴嵌入式 ,作者可爱的东东

文章链接:韦东山第4期Android视频-C++快速入门-第2课第1/2节_c++基础知识_访问控制/程序结构-学习笔记

标签: #c语言程序设计第4版郑莉 #未定义标识符cin怎么解决