上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: 理论上,本文适用于boost的各个版本,尤其是最新版本1.39.0;适用于各种C++编译器,如VC6.0(部分库不支持),VS2003,VS2005,VS2008,gcc,C++ Builder等。先总结一下Windows系统。一、下载首先从boost官方主页http://www.boost.org/下载最新版boost安装包(目前最新版是1.39.0)。因为boost一部分类是需要编译成库才能使用的,所以我们还需要准备好boost专用的编译辅助工具bjam。网上很多人都提倡直接使用boost安装包中附带的bjam源码来编译出bjam,但是之前需要修改若干配置脚本才能编译成功。个人认为真没什么 阅读全文
posted @ 2013-11-12 13:34 FREE小宝 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 1. 引言 C++ 语言的创建初衷是“a better C” ,但是这并不意味着C++ 中类似C 语言的全局变量和函数所采用的编译和连接方式与C 语言完全相同。作为一种欲与C 兼容的语言,C++ 保留了一部分过程 式语言的特点(被世人称为“ 不彻底地面向对象” ),因而它可以定义不属于任何类的全局变量和函数。但是,C++ 毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++ 对全局函数的处理方式与C 有明显的不同。 2. 从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题 为什么标准头文件都有类似以下的结构? #ifndef __INCvxWorksh#defi... 阅读全文
posted @ 2013-11-08 10:09 FREE小宝 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 目录Delphi永远没办法在栈上创建一个对象Delphi的构造函数更象是个类方法(静态成员函数)Delphi的析构函数中可以调用纯虚方法Delphi在构造对象时自动将成员变量清零Delphi构造函数中抛出异常会自动先调用析构函数Delphi简化了COM接口的AddRef、Release和QueryInterface一、Delphi永远没办法在栈上创建一个对象下面是一段常见的的Delphi代码,在过程的开头声明本过程所需要的全部局部变量:procedure Foo;varobj: TObject; //这句容易被C++程序员误会。begin...end;C++程序员会以为obj这个变量就是TOb 阅读全文
posted @ 2013-11-07 16:36 FREE小宝 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 最近无事在看书的时候发现了这个东西刹那间突然觉得大学时候编译原理书上的的什么语法分析书、上下文无关等晦涩难懂的概念清晰了许多今天把它贴出来希望也能让你回想起些往事。。。至于EBNF范式是什么东西,网上有详细的介绍,在此就不作赘述。在这里,使用EBNF范式来实现一个简单算术运算的语法描述,然后用C语言实现。该算术运算要实现的功能:(1)能够进行加法、乘法运算,且乘法优先于加法运算(2)实现'('、')'运算,且其优先级高于乘法运算使用EBNF范式修改后的简单整数算术运算的语法描述:expr-->expr+term|termterm-->term*fac 阅读全文
posted @ 2013-10-16 10:15 FREE小宝 阅读(1557) 评论(0) 推荐(0) 编辑
摘要: 典型的迭代器失效....vector:1.当插入(push_back)一个元素后,end操作返回的迭代器肯定失效。2.当插入(push_back)一个元素后,capacity返回值与没有插入元素之前相比有改变,则需要重新加载整个容器,此时first和end操作返回的迭代器都会失效。3.当进行删除操作(erase,pop_back)后,指向删除点的迭代器全部失效;指向删除点后面的元素的迭代器也将全部失效。deque迭代器的失效情况:1.在deque容器首部或者尾部插入元素不会使得任何迭代器失效。 // !!!此句话不对2.在其首部或尾部删除元素则只会使指向被删除元素的迭代器失效。3.在deque 阅读全文
posted @ 2013-10-16 09:32 FREE小宝 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 当用RadioButton时,希望在程序运行的时候默认一个选项:CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1);//CheckRadioButton(第一个,最后一个,要选择的那个);可调用时不能实现,结果发现原因:本来先后添加的两个单选按钮的资源ID号居然是先添加的大于后面的(原因不解)解决办法:一、更改资源ID编号顺序二、把前两个参数的顺序颠倒 阅读全文
posted @ 2013-08-22 09:17 FREE小宝 阅读(261) 评论(0) 推荐(0) 编辑
摘要: class_name ( class_name const & source ); 是拷贝构造函数的标准声明。 它和如下声明是一个意思 class_name ( const class_name & source ); class_name & source表示source 是另外一个已经存在的class_name类的实例 const表示在我这个拷贝构造函数里面不会修改source的内容。 这种形式是拷贝构造函数,const &代表引用,而且在函数内不可以改变引用所指的内容。即如果出现source.xx=yy这样的语句就会产生编译错误。传递引用比传递类对象的开销 阅读全文
posted @ 2013-08-15 09:50 FREE小宝 阅读(266) 评论(0) 推荐(0) 编辑
摘要: SetButtonInfo用于设置某个按钮,它的接口定义如下:下面是它的几个接口函数说明:void CToolBar::SetButtonInfo(int nIndex, UINT nID, UINT nStyle, int iImage)注意CToolBarCtrl类也有这个函数,但是它们的定义是完全不同的,实际上,CToolBar::SetButtonInfo的代码如下:void CToolBar::SetButtonInfo(int nIndex, UINT nID, UINT nStyle, int iImage){ASSERT_VALID(this);TBBUTTON button; 阅读全文
posted @ 2013-08-08 14:47 FREE小宝 阅读(1019) 评论(0) 推荐(0) 编辑
摘要: 最近用到窗口变化的一些东西,遇到几个相关的消息函数,简要分析,作为备忘。3个消息分别是:WM_SIZE、WM_SIZING、WM_GETMINMAXINFO;分别对应相应的处理函数:OnSize、OnSizing、OnGetMinMaxInfo。当窗口大小发生变化时,响应的顺序依次是:WM_GETMINMAXINFO-->WM_SIZING-->WM_SIZE。OnGetMinMaxInfo这个函数在窗口初始化的时候会被调用一次,当窗口大小发生改变的时候也会被调用。利用这个函数,可以比较方便的实现窗口最大最小尺寸的控制。参数lpMMI是一个结构体指针,其中包含了有关窗口的最大化大小 阅读全文
posted @ 2013-08-07 09:37 FREE小宝 阅读(998) 评论(0) 推荐(0) 编辑
摘要: 函数原形为:char *setlocale( int category, const char *locale );头文件:所支持的操作系统为:ANSI, Win 95, Win NT对于简体中文可以使用如下设置:setlocale( LC_ALL, "chs" );为什么一定要调用setlocale呢?因为在C/C++语言标准中定义了其运行时的字符集环境为"C",也就是ASCII字符集的一个子集,那么mbstowcs在工作时会将cstr中所包含的字符串看作是ASCII编码的字符,而不认为是一个包含有chs编码的字符串,所以他会将每一个中文拆成2个ASC 阅读全文
posted @ 2013-08-07 09:36 FREE小宝 阅读(2999) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 下一页