随笔分类 - C++
关于C++的相关知识以及遇到的各种问题汇总!
摘要:从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,所以无法找到vtable。所以构造函数不能是虚函数。 从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到其对应的调用。构造函数本身就是要初始化实例,那使用虚...
阅读全文
摘要:之前一直在学习C/C++,关于const的使用,这里出现一点,那里出现一点。知识用时方恨少,这一段时间正好各种笔试题,其中关于const的用法也是层出不穷,所以疲于在书本上各种翻,这里汇总一下,加深自己的印象的同时,也方便以后查阅和学习。菜鸟一个,若有错误,望指正! const关键字 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。不管出现在任何...
阅读全文
摘要:整体思路:关键是需要知道当前Steps数组中的全排列即可,而且需要不重复的全排列。即关键在于非递归的全排列实现即可~ 其实直接利用STL中的next_permutation算法的,这里我又自己实现了一遍该算法,当练练手了~ 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 9 void Swap(int& a, int&b) 10 { 11 int tmp = a; 12 a = b; 13 b = tmp; 14 } 15 ...
阅读全文
摘要:1、GetTickCount()函数1.1 函数介绍 该函数是windows里面常用来计算程序运行时间的函数;1.2 使用方法: DWORD dwStart = GetTickCount(); //这里运行你的程序代码 DWORD dwEnd = GetTickCount(); 则(dwEnd-dwStart)就是你的程序运行时间, 以毫秒为单位。这个函数只精确到55ms,1个tick就是55ms。1.3 代码示例 1 #include <iostream> 2 #include <windows.h> 3 using namespace std; 4 int main
阅读全文
摘要:今天公司同事让写了一个对数据库不同表进行读取的DLL,以方便其调用。 其实程序倒没什么注意的地方,不过不以为意,在写Demo使用该DLL的时候总出错,错误都集中在COM库的释放处。到网络上一查,原来也有人出现过这种错误。。。特别记下来,防止菜鸟加贝隔天忘了(记性太差啊)~ 数据库是连上了,数据查询也成功了,连在方法的返回后却抛出了读写冲突异常,而且也不知道是啥异常,只是提示错误发生在comip.h中的某段代码:1 void _Release() throw()2 {3 if (m_pInterface != NULL) 4 {5 m_pInterface...
阅读全文
摘要:最近搞数据库方面的一个小程序,将本地文件传输到服务器保存起来,其中对于文件的发送使用的是ADO中的AppendChunck函数,其参数为VARIANT类型的,使用常用方法将SafeArray 封装到VARIANT参数中。。。所以需要了解下SafeArray相关的一些知识。 SAFEARRAY的主要目的是用于automation中的数组型参数的传递。因为在网络环境中,数组是不能直接传递的,而必须将其包装成SafeArray。实质上SafeArray就是将通常的数组增加一个描述符,说明其维数、长度、边界、元 素类型等信息。SafeArray也并不单独使用,而是将其再包装到VARIANT类型的...
阅读全文
摘要:今天在编写小程序的时候,需要获取一个未读取的文件大小,想到文件获取的几种方式,这里总结一下,以方便以后查看学习。 在win32程序中,我们可以通过C++和C中的几个常用函数就可以做到哦~ 1、 _stat 结构体 该结构体为Linux系统调用函数,其他的函数还有 fstat,lstat,就不一一列举了,童鞋们可以谷歌之或者到MSDN上仔细看下。这三者均可以返回文件的属性,而_stat结构体中成员属性st_size可以得到文件大小,只要指定文件路径即可。1 // C++获取文件大小方法一 2 struct _stat info; 3 _stat(filepath, &info); ...
阅读全文