经过前面两个Review,对代码复用,类的继承概念有了进一步理解。

这里再做一次复盘,把其他概念也串联起来构成一个知识框架。

首先是类和对象的概念。对象指的是特征与技能的结合体,面向对象编程思想的好处是提高了程序的扩展性,可维护与可读性都变得更好。

类在构造时要考虑内存的动态分配问题,也有了构造函数析构函数的概念。

为了使得对象的操作更加美观,有了运算符重载的技术。

函数的重载是C++语言不同于C语言的一大特征。重载的意义在于给调用者带来了很多方便,提高程序的可读性,根据实际运行情况决定同样的方法实际调用哪个代码块。

运算符重载和类成员函数重载,实际上是C++多态技术的一种形式。多态是C++面向对象的三大特性之一,其他两个是封装继承

多态的概念实际上是建立在继承的概念之上的,与多态关系密切的一个概念是虚函数,还有就是联编(静态联编、动态联编),多态的特性还会牵扯到程序运行的额外开销。

封装的概念很好理解,一堆过程用一个函数封装起来,一堆相关变量用一个结构体封装起来

考虑到代码的复用类的复用等等。--->也就有了类的继承的概念

公有继承(is-a关系)是代码复用的其中一种机制,此外还有组合的方式进行代码复用,包含私有继承保护继承(has-a关系)等等。

此外关于代码复用还有多重继承类模板的概念。

类模板函数模板概念的延伸。

模板的好处是封装并复用了过程或算法,并使其独立于类型。

C++提供了大量的标准模板库和标准类,可以基于这些现成的代码,开发自己的程序。

此外由于类的概念中有私有成员,公有成员,保护成员。实际上这些概念是为了限制外界对类中数据访问的权限。这很好地保护了数据,但有时候也不大方便,这时候就需要友元

简单来讲友元函数一种特殊的非成员函数,它可以访问类的私有数据。

友元友元函数概念再延伸一下,也就有了友元类

此外还有内存模型、名称空间、异常、输入输出流、文件、泛型编程、容器、迭代器等概念有待继续梳理....

C++Review3_关于C++各种概念的串联与梳理的更多相关文章

  1. 时间序列算法(平稳时间序列模型,AR(p),MA(q),ARMA(p,q)模型和非平稳时间序列模型,ARIMA(p,d,q)模型)的模型以及需要的概念基础学习笔记梳理

    在做很多与时间序列有关的预测时,比如股票预测,餐厅菜品销量预测时常常会用到时间序列算法,之前在学习这方面的知识时发现这方面的知识讲解不多,所以自己对时间序列算法中的常用概念和模型进行梳理总结(但是为了 ...

  2. OAuth 2.0 概念及授权流程梳理

    本文可以转载,但请注明出处https://www.cnblogs.com/hellxz/p/oauth2_process.html OAuth2 的概念 OAuth是一个关于授权的开放网络标准,OAu ...

  3. 关于ORACLE数据库名以及数据实例名等几个重要概念

    在Oracle中有关数据库和数据库实例的几个重要概念,有时候如果理解不是很深或者对其疏忽.混淆了,还真容易搞错或弄不清其概念,下面就数据库实例名.数据库名.数据库域名.数据库服务名.全局数据库名几个概 ...

  4. 【K8s学习笔记】K8s是如何部署应用的?

    本文内容 本文致力于介绍K8s一些基础概念与串联部署应用的主体流程,使用Minikube实操 基础架构概念回顾 温故而知新,上一节[K8S学习笔记]初识K8S 及架构组件 我们学习了K8s的发展历史. ...

  5. HTTPS协议学习总结

    目录 一:什么是HTTPS协议?二:客户端与服务端如何建立HTTPS协议连接?三:证书.加密协议.信息摘要.签名算法概念解释与关系梳理四:低版本操作系统作为客户端发送HTTPS失败分析五:参考资料   ...

  6. IdentityServer4 知多少

    1. 引言 现在的应用开发层出不穷,基于浏览器的网页应用,基于微信的公众号.小程序,基于IOS.Android的App,基于Windows系统的桌面应用和UWP应用等等,这么多种类的应用,就给应用的开 ...

  7. 一文搞清到底什么是 .NET?

    现在各种 .NET 满天飞,别说新手了,连我这样的老手都差点被绕进去.到底什么是 .NET 呢?通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 这篇文章好长呀 ...

  8. (oralce)pga_aggregate_target与workarea_size_policy相互关系验证

    pga_aggregate_target与workarea_size_policy相互关系验证 先放上结论: 1. 当pga_aggregate_target设置为非0, 手工设置(workarea ...

  9. 卷积神经网络CNN在自然语言处理中的应用

    卷积神经网络(Convolution Neural Network, CNN)在数字图像处理领域取得了巨大的成功,从而掀起了深度学习在自然语言处理领域(Natural Language Process ...

随机推荐

  1. pytorch利用多个GPU并行计算多gpu

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/Answer3664/article/de ...

  2. python 并发之线程

    一.什么是线程 #指的是一条流水线的工作过程,关键的一句话:一个进程内最少自带一个线程,其实进程根本不能执行,进程不是执行单位,是资源的单位,分配资源的单位 #线程才是执行单位 #进程:做手机屏幕的工 ...

  3. Android 高仿微信语音聊天页面高斯模糊效果

    目前的应用市场上,使用毛玻璃效果的APP随处可见,比如用过微信语音聊天的人可以发现,语音聊天页面就使用了高斯模糊效果. 先看下效果图: 仔细观察上图,我们可以发现,背景图以用户头像为模板,对其进行了高 ...

  4. LeetCode81 Search in Rotated Sorted Array II

    题目: Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed? Would t ...

  5. epoll与fork

    使用epoll时,如果在调用epoll_create之后,调用了fork创建子进程,那么父子进程虽然有各自epoll实例的副本,但是在内核中,它们引用的是同一个实例.子进程向自己的epoll实例添加. ...

  6. JS高级第1天

    阶段目标 主要学习 JS 的面向对象编程思想. 对象 概念 在编程领域,任何 事 和 物都可以概括成对象. 对象概念练习 用编程思想抽象出你心仪对象的属性和方法. 对象由属性和方法组成,属性和方法都可 ...

  7. 解锁当前XXX用户

    pam_tally2 查看当前锁账户 pam_tally2 --user=XXX用户 --reset 解锁当前XXX用户

  8. codedecision P1113 同颜色询问 题解 线段树动态开点

    题目描述:https://www.cnblogs.com/problems/p/11789930.html 题目链接:http://codedecision.com/problem/1113 这道题目 ...

  9. canvas实现碰壁反弹(单个小方块)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1

    ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name'  at row 1   数据库字符集问 ...