GeekBand C++面向对象高级编程(二)

本笔记为GeekBand C++面向对象高级编程(上)第二周课程之总结。

一、三大函数

从string类入手,讲解Class with pointer members中3个特殊函数:

  • 拷贝构造函数
  • 析构函数
  • 拷贝赋值函数
    任何带有pointer members的类必须有拷贝构造函数和拷贝赋值函数。

1.1 拷贝构造函数

copy ctor的实现时必须先分配空间,然后再进行拷贝。

1.2 拷贝赋值函数

必须先检测自我赋值,然后分三步进行

  • 删除private data
  • 分配内存空间
  • 拷贝数据

二、堆栈以及内存管理

,是存在于某作用域的一块内存空间。函数本体内声明的任何变量,其所用内存都取自
,是由操作系统提供的一块全局内存空间,程序可动态分配从中取得若干区块。

new是先分配内存再调用构造函数
new是先分配内存再调用构造函数

GeekBand C++面向对象高级编程(二)_第1张图片
p1.jpg

delete是先调用析构函数再释放内存
delete是先调用析构函数再释放内存

GeekBand C++面向对象高级编程(二)_第2张图片
p2.jpg

注意事项:VC中的动态内存分配
VC中动态内存分配
VC中动态内存分配

三、类模板

template
class complex
{
piblic:
...

private:
...

};

四、namespace的使用

可以理解为界定函数、变量的作用域。

你可能感兴趣的:(GeekBand C++面向对象高级编程(二))