
c/c++
埃兰迪尔007
计算机
展开
-
在release模式下使用vector下崩溃的问题
昨天遇到一个奇怪的问题,在debug下调试完成的程序,在release模式下总会崩溃,由于release调试跟踪功能偏弱,跟踪数遍之后才发现是在一个vector的push_back时出现异常。 一般有三种情况: 1、在vector使用之前先reserve(预留)一个大小。(这个原因实在没查出来) 2、VS2005编译Release版STL加入了原创 2013-06-08 17:27:14 · 3731 阅读 · 0 评论 -
面向对象设计原则:LisKov替换原则(LSP)
●定义子类型必须能够替换掉它们的基类型。●关于“IS-A”通常说“IS-A”是一个继承关系,如果某个将要被创建的类与现存的某个类满足这种关系,那么这个新类应该从这个现存中继承。“替换原则”告诉我们怎么样去使用面向对象三大机制中的“继承与多态”。C#语言中(很多语言也是这样的)一个子类是可以转换为其基类的,换句话说就是对基类的操作同样适用于其子类。这一点看上去十分简单,但在编写代码的转载 2013-06-06 18:58:43 · 681 阅读 · 0 评论 -
拷贝构造函数
用一个类对象初始化该类的另一个对象被称为缺省按成员初始化,在概念上的过程是通过依次拷贝每个非静态数据成员。也被成为浅拷贝。浅拷贝存在的一个显著问题就是,如果类中包含指针成员,在构造函数中申请了堆、文件等资源,会造成新对象和原来对象的指针指向同一处资源,很容易导致程序崩溃,并且常常出现我们意料之外的计算结果。解决办法就是使用深拷贝方式,即给类编写拷贝构造函数。拷贝构造函数有一个指向类对象的引原创 2013-07-05 09:52:12 · 634 阅读 · 0 评论