- 博客(10)
- 资源 (32)
- 收藏
- 关注
原创 从一道题分析C++虚函数机制
问题:写出下面程序的运行结果:#include using std::cout;using std::endl;class A{public: void nonVirtualFun() { cout<<"1"<<endl; } virtual void virtualFun() { cout<<"2"<<endl; } virtual ~A(){}};
2013-01-26 22:54:52 1462
原创 动态多态与静态多态
多态的字面含义:具有多种不同的形态。关键字:重载/模版和虚函数类型:编译期多态(静态多态,早绑定)和运行期多态(晚绑定)编译期多态(重载/模版):重载int getMax(int param1,int param2);double getMax(double param1,double param2);模版:templateT getMax(T param1,T
2013-01-25 17:10:07 12607 3
原创 用empty()代替size()==0
对于任意容器c,写下代码:if(c.size()==0)目的就是判断容器c是否为空,即if(c.empty())。你可能会奇怪,为什么使用empty()要好于size(),尤其是事实上,empty是一个判断size的内联函数。选择empty的理由:对于所有标准容器,empty()是一个常数时间操作,而对于一些list实现,size()不保证是一个常数时间操作。why?list li
2013-01-24 16:50:18 3156 1
原创 std::function与std::bind 函数指针
function模板类和bind模板函数,使用它们可以实现类似函数指针的功能,但却却比函数指针更加灵活,特别是函数指向类 的非静态成员函数时。std::function可以绑定到全局函数/类静态成员函数(类静态成员函数与全局函数没有区别),如果要绑定到类的非静态成员函数,则需要使用std::bind。#include #include using namespace std;typ
2013-01-22 20:37:06 83102 7
原创 警惕C++令人恼怒的解析
假设C盘下文件C:\1.txt,里面存储的是一些int型数据,现在要把这些数据读入一个list中,或许我们就写出了下面的代码: std::ifstream infs("c:\1.txt"); std::listlistInt(std::istream_iterator(infs),std::istream_iterator());但这并没有按照预期
2013-01-17 21:05:08 3168 2
转载 深入分析Sleep(0)与Sleep(1)的区别
转载,原文链接:http://www.cnblogs.com/kesalin/archive/2012/10/11/Sleep.html目的:有时候我们想让线程不被调度一定的时间,也就是说让线程睡眠一段时间。 API 接口:在 Win32中可以调用 Sleep,SleepEx 和 SwitchToThread 三个API。VOID WINAPI Sleep(DWORD dw
2013-01-17 15:39:29 1433
原创 虚函数与虚继承寻踪
非原创,摘自C++前辈(组员)ZMF。封装、继承、多态是面向对象语言的三大特性,熟悉C++的人对此应该不会有太多异议。C语言提供的struct,顶多算得上对数据的简单封装,而C++的引入把struct“升级”为class,使得面向对象的概念更加强大。继承机制解决了对象复用的问题,然而多重继承又会产生成员冲突的问题,虚继承在我看来更像是一种“不得已”的解决方案。多态让对象具有了运行时特性
2013-01-15 09:52:39 1414 1
原创 if代码块中定义的变量的释放时机
class MutexLock{public: MutexLock() { InitializeCriticalSection(&mutex_); } ~MutexLock() { DeleteCriticalSection(&mutex_); } void lock() {
2013-01-14 14:44:17 1803
原创 PIMPL
再说说libjingle这个库,看了N久了,还是没搞清楚流程。但是从libjingle的源码中学到了PIMPL的知识。假设现在有一个StuManager类,StuManager.h classStuManager { public: constint getAge() const; private: intage;
2013-01-11 19:08:58 1289
原创 信号槽传递非Qt库类型参数时,出现QObject::connect: Cannot queue arguments of type 'QUuid'(Make sure 'string' is regi
例如以C++标准库中string做参数,则会出现:QObject::connect: Cannot queue arguments of type 'string'(Make sure 'string' is registed using qRegisterMetaType().)解决方案:可以再main中加入:qRegisterMetaType("string")
2013-01-05 16:02:24 8634 3
3-sum算法求解 python
2014-09-06
查找数组中和为某个值的元素对的个数
2014-09-05
查找数组中最接近与某值的元素 python
2014-09-04
linux webserver例子
2013-10-13
Qt4.8.2 加农炮小游戏 cannon 源码 和exe文件
2012-08-02
约瑟夫环问题程序 源代码
2011-03-20
链表(创建,清空,删除元素,求长度,插入元素)
2011-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人