![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习
cindy1212
这个作者很懒,什么都没留下…
展开
-
《C++ primer》——ch5 表达式:new和delete
int i;int *p = &i;delete p;p = 0; //p = NULL;释放指针后,p变成了未定义,但p仍然存放之前所指向对象的地址,p所指向的内存已释放,因此p不再有效。这种情况下,p变成悬垂指针,它往往会引发程序错误,且难发现。最后一句话则保证了安全性,使得p释放后不再指向任何对象,这句话必须存在。原创 2015-04-21 22:31:32 · 287 阅读 · 0 评论 -
C++虚函数与虚函数表
多态性可分为两类:静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,动态多态性是通过虚函数实现的。每个含有虚函数的类有一张虚函数表(vtbl),表中每一项是一个虚函数的地址, 也就是说,虚函数表的每一项是一个虚函数的指针。没有虚函数的C++类,是不会有虚函数表的。两张图: 简单例子: 1 #i转载 2015-04-21 21:08:53 · 203 阅读 · 0 评论 -
memcpy和memmove区别和实现
memcpy与memmove的目的都是将N个字节的源内存地址的内容拷贝到目标内存地址中。但当源内存和目标内存存在重叠时,memcpy会出现错误,而memmove能正确地实施拷贝,但这也增加了一点点开销。memmove的处理措施:(1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝(2)当源内存的首地址大于目标内存的首地址时,实行正向拷贝(3)当源内存转载 2015-04-28 14:23:28 · 243 阅读 · 0 评论