【Geekband】Week 2 Notes.md

0. 主要内容

【Geekband】Week 2 Notes.md_第1张图片
课程结构

1. Big Three在String Class的实现

  • 函数声明时的设计思路
【Geekband】Week 2 Notes.md_第2张图片
设计思路

1.1 普通构造函数

【Geekband】Week 2 Notes.md_第3张图片
普通拷贝构造函数
  • 对字符串的处理
【Geekband】Week 2 Notes.md_第4张图片

1.2 拷贝构造函数 - Copy Constructor

  • 默认情况(即浅拷贝)
  • 非默认情况(主要针对,类成员有指针的情况)
【Geekband】Week 2 Notes.md_第5张图片

1.3 拷贝赋值 - Copy Assignment

【Geekband】Week 2 Notes.md_第6张图片

1.3 析构函数

  • 表达方式
【Geekband】Week 2 Notes.md_第7张图片
  • 注意中括号的位置
【Geekband】Week 2 Notes.md_第8张图片

1.4 总结

【Geekband】Week 2 Notes.md_第9张图片
Big Three总结

2. Stack和Heap

  • Stack是存在于某作用域的一块内存空间,函数本身即会形成一个stack来放置它接受的参数以及返回地址
  • Stack在作用域结束后会自己消失
【Geekband】Week 2 Notes.md_第10张图片
  • Heap是操作系统提供的一块全局的内存空间,程序员可以动态分配获得诺干区块。
  • Heap中由new动态分配的所得的需要delete来删除它。
【Geekband】Week 2 Notes.md_第11张图片
  • delete 深层次含义
【Geekband】Week 2 Notes.md_第12张图片
delete深层次含义

3. 动态分配内存

  • 以VC为例
【Geekband】Week 2 Notes.md_第13张图片
在VC环境下的动态内存分配方式

4. 补充

4.1 Static

  • 详见下图注释
【Geekband】Week 2 Notes.md_第14张图片
以银行利率为例
  • 具体调用方式
【Geekband】Week 2 Notes.md_第15张图片

4.2 cout可以接收各类数据类型

【Geekband】Week 2 Notes.md_第16张图片

4.3 class Template

  • 容易带来代码膨胀
  • 自己还未做相关测试

4.4 function Template

4.5 Namespace

  • 使用方法见紫色注释
【Geekband】Week 2 Notes.md_第17张图片

5. 作业

http://www.jianshu.com/p/319a60a192b1
https://github.com/weiweikong/Program_Practice/tree/master/160310.Geekband_Homework2

你可能感兴趣的:(【Geekband】Week 2 Notes.md)