通常使用的connect,实际上最后一个参数使用的是Qt::AutoConnection类型:Qt支持6种连接方式,其中3中最主要:
1.Qt::DirectConnection(直连方式)(信号与槽函数关系类似于函数调用,同步执行)
当信号发出后,相应的槽函数将立即被调用。emit语句后的代码将在所有槽函数执行完毕后被执行。
2.Qt::QueuedConnectio...
分类:
其他好文 时间:
2014-07-22 18:02:51
阅读次数:
696
补充一点知识:私有变量在对象内部使用'var'关键字来声明,而且它只能被私有函数和特权方法访问。私有函数在对象的构造函数里声明(或者是通过var functionName=function(){...}来定义),它能被特权函数调用(包括对象的构造函数)和私有函数调用。特权方法通过this.metho...
分类:
其他好文 时间:
2014-07-22 00:36:34
阅读次数:
233
函数:具有特定功能的代码段,分为库函数,自定义函数.函数定义:函数返回值类型 函数名(形式参数列表){代码段;return 返回值;}注意:每个函数返回值最多只有一个.return是一个函数结束的标志.形式参数(形参):函数定义时使用的虚拟参数名,用以接收函数调用是传递过来的实际值.实际参数(实参)...
分类:
其他好文 时间:
2014-07-22 00:33:35
阅读次数:
260
下图是asterisk的呼叫流程图:
我们以sip的呼叫过程为例来描述,其他channel的呼叫过程基本类似。
Astersik下注册的sip用户主动发起一个呼叫的函数调用过程(incoming)如下:
do_monitor->sipsock_read->handle_request->handle_request_invite->sip_new/ast_pbx_start->pbx_th...
分类:
其他好文 时间:
2014-07-22 00:27:37
阅读次数:
294
们先看看blockTest2,它是由 结构体impl, 结构体Desc, 构造方法__exampleBlock_block_impl_2() 组成展开后是
*isa 指向该实例对象(代码里是NSConcreteStackBlock,其实应该是NSConcreteGlobalBlock)
Flags 用于按bit位表示一些block的附加信息
reserved 保留变量
*FuncPtr 函数指针,指向具体的block实现的函数调用地址(代码里是__exampleBlock_block_func_2)...
分类:
其他好文 时间:
2014-07-21 22:12:48
阅读次数:
336
函数的重载操作符中也有不少细节
1 重载操作符特点
重载操作符本质上就是重载函数,它的特点:
除了函数调用操作符‘()’外,所有的重载操作符的形参数目必须与操作符的操作数目相等。
重载操作符的操作数必须至少有一个类类型,否则就不是重载而是原型了。
优先级和结合性不会发生改变,例如对于算数操作符的重载,*的优先级肯定还是大于+
不具有短路求值特性(就是根据已有的值就可以判断出最终...
分类:
编程语言 时间:
2014-07-21 11:17:04
阅读次数:
190
一、C++为什么引入虚函数,虚函数有哪些用途? 1.非虚的世界 对象的自恰性:对同样的函数调用,每个对象都会做出恰当的响应. b. 通过指向子类对象的基类指针调用函数: 只能调用基类的成员函数,虽然指针指向子类对象. 一旦调用子类所特有的成员函数,将引发编译错误. c.通过指向基类对象的子真调用函数...
分类:
其他好文 时间:
2014-07-21 09:38:40
阅读次数:
213
如果我们需要重复多次计算相同的问题,通常可以选择递归或者循环 递归的好处是代码简洁 但是递归也有明显的缺点:递归是由于函数调用自身,而函数调用是需要有时间和空间的消耗的。每一函数调用,都需要在内存栈中分配空间以保存参数,返回地址和临时变量,而且往栈中压入数据和弹出数据都需要时间。递归中有可能...
分类:
其他好文 时间:
2014-07-20 23:02:25
阅读次数:
326
1. 函数调用的原理:通过函数名(函数的入口地址)对函数进行访问,假设我们能够改变函数首地址指向的内存的话,使其跳转到另一个函数去执行的话,那么就可以实现函数打桩了。
2. 方法:对函数首地址出写入一条汇编语言 jmp xxx (其中xxx是要跳转的相对地址)。
3. 令原函数为oldFun,新函数为newFun,那么打桩时函数跳转的相对地址 offset = newFun - oldFun - (我们制定的这条指令的大小),此处为绝对跳转指令的长度=5。 jmp xxx一共6字节。...
内存常用的区域分类:栈区(stack)、堆区(heap)、全局区(static区)、文字常量区、程序代码区。栈区:由编译器自动分配和释放,遵循”后进先出“的规则。在函数调用时,第一个进栈的是主函数中的下一条指令地址,然后是函数的各个参数(大多数C编译器中,参数从右往左入栈),然后是函数的局部变量。静...
分类:
其他好文 时间:
2014-07-18 17:23:21
阅读次数:
190