C++笔记:某培训课程与21天学通C++
写在开头的话
有人讲解,学习效率还是会高一些的吧。
愿我能坚持。更愿我能在写完这个笔记后,继续写学习笔记之二。毕竟,培训班的课程只能算一个开始。
后来在忙其他事情的时候,学到了更多的东西,于是把21天学通C++及网络上资料(主要是菜鸟教程)的学习笔记也记到这上面来。虽然和周记系列有点冲突,但同时进行吧,做下去就能变得清晰。
Day1
先说一下直观地感受,比起自学,视频更让我有了系统学习、或者说科班的感受。毕竟我自己是遇到什么问题才去学相应的内容。不过我之前的基础或者说经历,还是有些用的。老师讲到一些地方,我能和我之前的经验联系起来。
原来C++ primer plus比C++ primer更基础
C++的特点
说到内存分配,前几天修改Jinc放大算法时还遇到过(给Data分配内存,C++中更推荐用new
代替C的malloc()
),联系之前用Python写作业的经历。确实是,定义一个变量,C++需要考虑内存分配和释放的问题,而Python完全不用管。所以这也是C++更高效的原因,开发者可以控制、优化内存的使用。
命名空间(namespace)相关
std标准命名空间,来自<iostream>
,自定义命名空间则通过以下方式实现。
1 |
|
struct类型
struct类型是我自己接触较多的,但可能是视频里讲得不多,还是没听太明白。视频给我的感受,和定义了一个类差不都,但平时的经历让我觉得这只是给变量起了个新名字。
Other
其余就是比较基础的东西了,命名空间的调用、变量的定义、bool类型,以及在这些过程中学到的基础的代码和VS使用。
Day 2
运行了一下基本的类的代码。
Day 3
学习了多态、虚函数,从书中看了纯虚函数的概念。
但回到avs版的JincResize脚本,也只是用纯虚函数把函数封装得更“严实”,我还无法理解这样做的意义。而且看上去也无关速度。(那我的dll为什么那么慢…我要掀桌子了orz…(后来发现是msvc编译器的问题,换成gcc编译器就快了…)
Day n
构造函数
所谓构造函数,可以理解为构建一个属于类的对象。
- 构造函数与类同名
- 构造函数可以重载
- 构造函数没有返回值
- (原始的)构造函数没有参数,但重载也可以有参数
- 可以在类外定义构造函数,需要
className::className()
这样写