回调函数(callback)与仿函数(functor)很多时候从用途上来看很相似,以致于我们经常 将它们相提并论。例如: inline bool compare(int a, int b) { return a b; } struct comparer { bool operator()(int a, int b) const { return a b; } }; void main() { std::vectorint vec, vec2; 发布时间:2012-06-29 作者: 佚名技术 views(206)
我们知道,在C/C++中,向一个函数传递数组时,实际上传送的是这个数组的首地址,也即是一个指针类型。所以,在函数中,我们没有办法知道这个传递进来的数组的长度到底为多长,一个普遍的方法就是再增加一个参数,来记录传递进来的数组的长度。 不过在C++中,使用模板机制,可以很好地解决这个问题,如下面的代码所示: #inc 发布时间:2012-06-29 作者: 佚名技术 views(353)
1、常量指针 指向常量的指针变量的定义和使用 如:const int *p; 2、指针常量 如:char* const p = abcde; 可以这么理解: const p的类型式char*,所以p是不可以再修改的。也就是所p必须是在定义时就已经初始化,并且不能再修改了。 3、指向常量的指针常量 指向常量的指针常量 如:const int* const p = b; 可以这么理解 in 发布时间:2012-06-29 作者: 佚名技术 views(159)
众所周知~UDP是一个无连接协议,因此靠它来传输的话是不可靠的,即使是数据包丢失 也不会报错。但是,在编写Linux上的socket程序时,却可以用简单的方法,在应用层实现超时 重传,让UDP可靠一些。(这次说的方法最好用于两个程序间通信也许只能用 于两台机器通信)首先~我介绍一下Linux下,I/O操作的阻塞模式: 在Linux下, 发布时间:2012-06-29 作者: 佚名技术 views(614)
C++和C语言相比,最为人诟病的就是其性能问题,通常一条C语言经编译器解释后,可以固定转换成510条汇编语言,但是一条C++语言,就没有这么幸运了,可能会是3条汇编语言,也可能是300条。C++影响性能的原因很多,其中一个就是临时对象的创建和销毁。这里我简述一种减少创建临时对象的方法--返回值优化问题 很多时候,函数需要 发布时间:2012-06-29 作者: 佚名技术 views(450)
朋友最近发邮件问我两个问题。内容如下(为了更适合阅读,我做了简单修改。译者在此基础上又做了修改): 我在C++的多继承上遇到了很大麻烦。 如图1,A、B1和B2为纯抽象类;C从B1、B2多继承,且实现了全部父类的抽象方法。 图1 现在: C* p = new C; p-Method_of_A(); //从B1、B2都能得到被调用方法,为什么编译器不报二义性 发布时间:2012-06-29 作者: 佚名技术 views(176)
使用C语言编程序,有时需要把一种数值(如float类型的数值)转换成另一种类型(如int类型)的数值使用,这时,我们就要用到类型强制转换运算符,如(int)、(float)等。但是在VC++中,当把一个float类型的数值转换成int类型时,有时会出现比较大的误差。我在工作过程中就碰到过,当我把一个值为1140.00的float型变量ftemp使用 发布时间:2012-06-29 作者: 佚名技术 views(178)
栈在计算机领域中是个经常提到的名词,数据结构中有栈;网络传输中有协 议栈。今天我们讨论的调用栈(call stack),指的是在程序的执行过程中存储函 数调用信息的动态数据结构。 这个定义可能太抽象了一些,在给出具体的例子之前,请大家先思考一个问 题,哪些信息是函数调用过程中所需要的?或者这么问,一个编译器,在面对 发布时间:2012-06-29 作者: 佚名技术 views(270)
|