一、构造函数为什么不能为虚函数1. 从存储空间角度,虚函数相应一个指向vtable虚函数表的指针,这大家都知道,但是这个指向vtable的指针事实上是存储在对象的内存空间的。问题出来了,假设构造函数是虚的,就须要通过 vtable来调用,但是对象还没有实例化,也就是内存空间还没有,怎么找vtable...
分类:
其他好文 时间:
2014-10-08 23:38:37
阅读次数:
148
SetProcessWorkingSetSize减少内存占用系统启动起来以后,内存占用越来越大,使用析构函数、GC.Collect什么的也不见效果,后来查了好久,找到了个办法,就是使用 SetProcessWorkingSetSize函数。这个函数是Windows API 函数。下面是使用的方法:C...
分类:
其他好文 时间:
2014-10-08 16:34:15
阅读次数:
158
简单实现了构造、析构、push_back、pop_back、operator=、operator[]、clear等函数...
分类:
其他好文 时间:
2014-10-07 15:15:53
阅读次数:
193
本篇我们将讨论线程Thread、互斥锁MutexLock、条件变量Condition的封装;说明:1、MutexLock、Condition利用构造函数和析构函数自动完成资源的申请和释放;2、MutexLock、Condition和Thread 都涉及到系统资源,这些类全部为不可复制的;例如,a程序...
分类:
系统相关 时间:
2014-10-06 18:49:20
阅读次数:
278
如果一个函数内使用了异常处理机制, VC 编译器在编译该函数时,它会给此函数插入一些“代码和信息”(代码指的是当该函数中出现异常时的回调函数,而信息主要是指与异常出现相关的一些必要的链表),因此每份函数只能有一份这样的东东(“代码和信息”),故一个函数只能采用一种形式的异常处理规则。上图中黄色部分就...
分类:
其他好文 时间:
2014-10-06 00:01:09
阅读次数:
307
采用自定义的operator运算符实现自己的内存分配策略,在某些时候可以提高程序的效率。C++中的new运算符,具体工作流程如下:1.调用operator new申请原始内存2.调用place new表达式,执行类的构造函数3.返回内存地址而delete操作符的工作是:1.调用对象的析构函数2.调用...
分类:
其他好文 时间:
2014-10-05 19:54:28
阅读次数:
262
C++异常当然可以通过try...catch处理,不过没有finally关键词。C++资源的释放可以通过RAII实现。RAII,也称为“资源获取就是初始化”,是c++等编程语言常用的管理资源、避免内存泄露的方法。它保证在任何情况下,使用对象时先构造对象,最后析构对象。Destructors shou...
分类:
编程语言 时间:
2014-10-04 02:08:55
阅读次数:
155
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接【项目2 - 职员有薪水了】定义一个名为CPerson的类,有以下私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、析构函数、输出信息的函数...
分类:
编程语言 时间:
2014-10-03 21:57:35
阅读次数:
264
上一篇我们提到了new运算符以及它的工作步骤,其实无非是把两项工作独立出来: 1.申请原始内存 2.执行构造函数 delete也涉及了两个工作: 1.执行析构函数 2.释放原始内存 其实标准库提供了另外一种更加高级的手段实现内存的分配和构造,就是std::allocator的职责。 allocato...
分类:
其他好文 时间:
2014-10-02 18:50:23
阅读次数:
195
题目大意:
给出的DNA序列有一个权值,请构造一个长度为I的DNA序列使得在这段DNA序列的权值最大。如果为负数就输出噼里啪啦。。。
思路分析:
构造序列就是在ac自动机上走,求最大要用到dp
dp[i][j][k] 表示现在构造到了长度 i 。此时的我们把当前字符放在j节点,并且满足了k状态。k是一个10位的2进制状态压缩。
注意这道题上有坑就是一个序列可能有多个权值。所以不能...
分类:
其他好文 时间:
2014-10-02 15:44:43
阅读次数:
173