C/C++
文章平均质量分 73
_cdcupt
cs大法好
展开
-
C++多态
前言提到c++的多态,能想到的无非是一个接口多种方法,通过虚函数来实现的…OOP的四大特性有抽象,继承,封装,多态,作为OOP的始祖,多态可谓c++的精华,总结一下c++的多态特性的一些浅层面的理解方便日后查看。OOP中的多态多态(polymorphism),是指计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多原创 2017-03-26 19:23:38 · 357 阅读 · 0 评论 -
C++智能指针
什么是智能指针?智能指针是为了简化程序员管理在堆中动态分配空间而封装好的一些类。c++的内存管理是让很多人头疼的事,当我们写一个new语句时,一般就会立即把delete语句直接也写了,如果我们不在每一个可能跳转或者返回的语句前释放资源,就会造成内存泄露。使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当超出了类的作用域是,类会自动调用析构函数,析构函数会自动释放资源。C++中的智能原创 2017-03-26 19:48:26 · 300 阅读 · 0 评论 -
C++菱形继承
在c++继承体系中,有一类问题是永远跑不掉的即菱形继承问题。此类问题又被称作钻石继承问题,只是一种较差的设计结构,刚好看到这个问题,特此总结一下。何为菱形继承先来看一下菱形继承的基本结构 A和B从基类Base中继承,而D多重继承于A,B。那就意味着D中会有Base中的两个拷贝。因为成员函数不体现在类的内存大小上,所以实际上可以看到的情况是D的内存分布中含有2组Base的成员变量。 又因其结构原创 2017-06-01 15:27:49 · 298 阅读 · 0 评论 -
STL容器迭代器失效浅析
迭代器失效一般发生在对容器进行插入及删除操作时,插入/删除操作可能导致空间的重配置以及所指对象的位移而带来迭代器失效问题,我们可以归纳为以下两点:由于容器元素整体“迁移”导致存放原容器元素的空间不再有效,从而使得指向原空间的迭代器失效。由于删除元素使得某些元素次序发生变化使得原本指向某元素的迭代器不再指向希望指向的元素。容器插入删除操作的迭代器情况一般关联式容器的删除操作都会造成迭代器的失效下原创 2017-06-17 10:52:49 · 415 阅读 · 0 评论