候捷c++学习
浅拷贝:

如图所示a指向Hello,b指向World,直接进行b = a的赋值操作,导致b和a指向同一块地方,那么b原来指向的World就会发生内存泄漏,且由于a和b指向同一块地方,改变a也会影响b
深拷贝:

a指向He,b指向World,想要把b深拷贝给a,分三步走:
1、 清空a原来指向的内存空间

2、开辟和b同样大小的空间

3、将b的内容复制过去

但是要注意,先得检查在赋值之前,是否存在a=a这样的赋值情况

否则:

new三个动作:
分配内存、转型、构造函数

delete两个动作:
调用析构函数、释放内存

成员函数有一个隐藏的参数this

黄色部分可写可不写,不写编译器自动帮我们加
静态函数只能处理静态数据

调用静态函数的两种方式:

静态实现单例

更好的写法,需要单例的时候就创建

Copy-on Write 写时复制

当前,a,b,c三个内容都是hello,a如果要改变hello,不能影响b和c,如何做到?
a想改内容,copy一份让a来改,b,c两人共享原内容
复合,has a


委托,用指针指向a

继承,is a

如:界门纲目科属种
父类数据被完全继承,父类是子类的一部分

虚函数:
子类可以调用父类的数据,和函数,但是需不需要重新定义父类的函数呢?
(1)non-virtual函数:父类不希望子类重新定义(override)的函数
(2)virtual函数:希望子类重新定义(override),且你对它已经有默认定义了
(3)pure-virtual函数:希望子类一定要定义,且你对它没定义

pointer-like-class,智能指针
function-like-class,仿函数
reference 引用,int& r = x, r代表x,营造sizeof(r) = sizeof (x) ,&r = &x 假象

动态绑定三个条件:
(1)通过指针(2)指针向上转型(3)使用虚函数
虚函数,动态绑定,虚指针+虚函数表,多态

浙公网安备 33010602011771号