【Geekband】Week 2 Notes.md
2016-03-15 本文已影响41人
读书行路风雨兼程
0. 主要内容
![](https://img.haomeiwen.com/i54683/b890687631ea8dd1.jpg)
1. Big Three在String Class的实现
- 函数声明时的设计思路
![](https://img.haomeiwen.com/i54683/26567316fdf8cd05.jpg)
1.1 普通构造函数
![](https://img.haomeiwen.com/i54683/6afd917d92d58143.jpg)
- 对字符串的处理
![](https://img.haomeiwen.com/i54683/ca579a7a3e2a9058.jpg)
1.2 拷贝构造函数 - Copy Constructor
- 默认情况(即浅拷贝)
- 非默认情况(主要针对,类成员有指针的情况)
![](https://img.haomeiwen.com/i54683/6f4e87c6232c080f.jpg)
1.3 拷贝赋值 - Copy Assignment
![](https://img.haomeiwen.com/i54683/c8f694d0da3df185.jpg)
1.3 析构函数
- 表达方式
![](https://img.haomeiwen.com/i54683/773617cfb0a51268.jpg)
- 注意中括号的位置
![](https://img.haomeiwen.com/i54683/b9bba1e25adf7899.jpg)
1.4 总结
![](https://img.haomeiwen.com/i54683/8b180610b453859a.jpg)
2. Stack和Heap
- Stack是存在于某作用域的一块内存空间,函数本身即会形成一个stack来放置它接受的参数以及返回地址
- Stack在作用域结束后会自己消失
![](https://img.haomeiwen.com/i54683/7d53fc346df3fd72.jpg)
- Heap是操作系统提供的一块全局的内存空间,程序员可以动态分配获得诺干区块。
- Heap中由new动态分配的所得的需要delete来删除它。
![](https://img.haomeiwen.com/i54683/8edacc5b8316bc3e.jpg)
-
delete
深层次含义
![](https://img.haomeiwen.com/i54683/16b9fb6983d7a4cb.jpg)
3. 动态分配内存
- 以VC为例
![](https://img.haomeiwen.com/i54683/f947bf403fd8e8e9.jpg)
4. 补充
4.1 Static
- 详见下图注释
![](https://img.haomeiwen.com/i54683/cb3b8af777f5608a.jpg)
- 具体调用方式
![](https://img.haomeiwen.com/i54683/c21e08a1c9cda5a1.jpg)
4.2 cout
可以接收各类数据类型
![](https://img.haomeiwen.com/i54683/6486f7fc205cb8d2.jpg)
4.3 class Template
- 容易带来代码膨胀
- 自己还未做相关测试
4.4 function Template
4.5 Namespace
- 使用方法见紫色注释
![](https://img.haomeiwen.com/i54683/cbc6cf06d205ac55.jpg)
5. 作业
http://www.jianshu.com/p/319a60a192b1
https://github.com/weiweikong/Program_Practice/tree/master/160310.Geekband_Homework2