摘要: 引言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。对C++ 了解的人都应该知道虚函数(Vi... 阅读全文
posted @ 2018-11-05 14:55 OVS98 阅读(127) 评论(0) 推荐(0)
摘要: 引言我们都知道vector对象是动态存储的,从这一点看有点像链表,可以动态的增加或减少元素。我们也知道链表中是有指针变量,专门用于存储上一个和下一个元素的地址。正是因为这两个指针的存在,我们才能做到动态的存储数据,即不用像数组那样必须事先申请好空间。链表的缺点就是不能够快速的随机访问其中元素,必须通过指针层层查找。但是,vector既可以实现动态存储数据,而且支持快速随机访问(用下标或者指针访问元... 阅读全文
posted @ 2018-11-05 14:04 OVS98 阅读(485) 评论(0) 推荐(0)
摘要: 引言 C风格的强制转化(Type Cast)容易理解,不管是什么类型的转换都可以使用下面的公式: 当然,C++也是支持C风格的强制转换,但是C风格的强制转换可能带来一些隐患,让一些问题难以察觉,所以C++提供了四种强制类型转换函数(它们都是类模板):const_cast,static_cast,dy 阅读全文
posted @ 2018-11-05 11:35 OVS98 阅读(773) 评论(0) 推荐(0)
摘要: new和malloc大体来说有以下10点区别:申请内存所在位置不同返回类型的安全性不同内存分配失败时的返回值不同是否需要制定内存的大小是否调用构造/析构函数对数组的处理是否能够相互调用是否能够重载是否能够再分配用户能否处理内存分配不足的问题1.申请内存的所在位置不同new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C++基于... 阅读全文
posted @ 2018-11-05 10:05 OVS98 阅读(238) 评论(0) 推荐(0)