0%

读书笔记之21天学会C++(一)

前言

断断续续用了大半年读完这个时间读完这个,心情是极度复杂. .你tm一个章节举几个🌰就行了?还21天?是21X24小时才能读完书吧。然而读完书,总结还是要写的。(虽然代码还不是不懂,写不好算法)故只写部分现在工作和未来的工作可能用的代码。。。。

第零部分:引论

本部分包括第一章和第二章内容。个人觉得没什么营养。

第一章:绪论

  • C++起源和输出helloworld输出的书写。

第二章:C++程序组成部分

  • 介绍一个简单的函数组成和一些简单的概念。

第一部分:基础部分

第三章:变量和常量

  • 变量定义、变量类型,作用域的概念
  • 全局变量,局部变量
  • 字面常量(字面量)、const修饰符将变量声明为常量。
  • 命名注意事项,关键字

第四章:Array和String

  • 数组声明和初始化。
  • 数组元素增删改查。
  • 多维数组
  • 动态数组 vector
  • 字符串

第五章:表达式

  • 各种运算符。
  • 逻辑运算符。
  • 左移运算符、右移运算符(iOS中定义枚举见到比较多)。

第六章:条件表达式

  • if else条件语句、switch-case条件语句(枚举)、三目运算符。
  • for循环语句、while循环语句、do while循环。
  • 循环嵌套。

第七章:函数

  • 形参和实参
  • 递归函数(人了解迭代,神了解递归)
  • 函数重载(函数名相同,传参不同)
  • 内联函数
  • lambda函数

第八章:指针

  • 指针:存储地址的内存变量。*****用来访问指向的数据
  • 内存分配和释放(newdelete
  • 对指针执行++——编译器会认为你要改变的是指向相邻的内存快地址,而不是相邻字节。

第廿六章:智能指针

  • **智能指针:**包含运算符的类,其行为像常规指针,但智能指针能够及时妥善的小灰动态分配的数据,并实现了明确的对象生命周期(🤔️OC中ARC的基础?)。
  • 是为了解决无法及时准确的释放动态分配对象内存而引起野指针问题。
  • 指针的类型
    • 深复制(deepCopy), 拷贝它指向的对象,生成一个新的个体。
    • 写时复制(copy on write),共享指针,直到首次写入对象。
    • 引用计数:OC和其一致。
    • 引用链接:不主动维护对象的引用计数。引用计数为0时候释放对象。其基于双向链表实现,通过拷贝只能指针来创建新的智能指针时。新指针将插入新的链表中。当智能指针离开作用域进而销毁时候,析构函数将它从链表中删除。
    • 破坏性复制

第廿一章:函数对象

结构体里的函数类比与iOS里面的方法,实际上方法的实现也是依赖于结构体函数的。(其实没啥可记的。是代码的组成部分)

  • 函数和谓词(一元函数,一元谓词,二元函数,二元谓词)
  • 对象实例化、点访问、指针运算符访问(对象是new的)、
  • public 关键字和private 关键字,实现数据的抽象。数据安全
  • 构造函数:特殊函数,与类同名,不返回任何返回值
  • 构造函数重载、有默认值、包含初始化列表
  • 析构函数:和构造函数类似,但函数名前有个波浪号(~).每当对象不在作用域内或通过delete被删除,进而销毁时,都将调用析构函数。所以析构函数是重置变量以及分配释放动态内存和其他资源的理想场所。
  • 未完待续。。。。(主要是觉得目前用不到,函数的析构啊之类的问题)

第二部分

第九章:类和对象

  • 将定义Object的的属性和可使用这些属性执行的操作整合在一起就称之为类(class)。
  • 万物皆对象
  • 析构函数中创建单利类、不可复制的类、禁止栈中实例化的类
  • this 指针
  • 友元函数和友元类,关键字friend修饰。从外部访问私有数据成员和方法。

第十章:继承

  • 公有继承、public private

  • 派生继承 ,形如class Base{};class Derived:access-specifier Base{}; ; access-specifier可以是publicprivate或者protected

  • 使用::调用基类方法

  • 构造顺序和析构顺序(和目前业务不想关,只要记忆有类似的东西)

  • 保护继承

    • 有is-a关系
    • 使派生类能够访问基类的所有公有保护和保护成员
    • 在继承层次的外面,也不能通过派生类实例访问基类的公有成员。
  • 多继承,继承的类具有多个父类。具有多个父类的属性。

第十一章:多态

  • 多态,多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。
    • 使用虚函数实现多态行为(不是很重要,目前用不上)
  • 虚函数
  • 抽象类

第十二章:重载

  • 关键字operator、单目和双目运算符的重载
  • 解除运算符*和成员选择运算符->

ex me? 只讲运算符重载

未完待续····