ChinaUnix.net
相关文章推荐:

内联成员函数特点

(1)什么是内联函数
内联函数是指那些定义在类体内的成员函数,即该函数函数体放在类体内。

(2)为什么要引入内联函数
当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子:
#define ABS(x) ((x)>0? (x):-(x))
当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义...

by liliu4239 - 移动操作系统 - 2011-12-21 08:41:35 阅读(472) 回复(0)

相关讨论

总所周知,inline函数编译之后,代码被直接放进调用函数中。问题是:如果一个inline函数调用了其他的函数,那么这个函数的代码会像inline函数一样被复制到调用函数中么?我觉得是不会,该怎么验证?[code]void func_02() { puts("This is func_02!"); return; } inline void func_01() { puts("This is func_01!"); func_02(); return 0; } int main() { func_01(); puts("This is main function!"); return 0; } [/cod...

inline

by dodiddone - C/C++ - 2011-08-23 09:48:59 阅读(2421) 回复(5)

好多公司的笔试题都有它,我吃了两次亏,长了一智 文章(一) 内联函数与宏定义   在C中,常用预处理语句#define来代替一个函数定义。例如:     #define MAX(a,b) ((a)>(b)?(a):(b))   该语句使得程序中每个出现MAX(a,b)函数调用的地方都被宏定义中后面的表达式((a)>(b)?(a):(b))所替换。   宏定义语句的书写格式有过分的讲究, MAX与括号之间不能有空格,所有的参数都要   放在括号里。尽管如此,它还是有麻烦:  ...

by thestones - Linux文档专区 - 2005-11-17 15:49:25 阅读(889) 回复(0)

格鲁吉亚 亚美尼亚 阿塞拜疆 以色列 塞浦路斯 土耳其 哈萨克斯坦

by rickcafe - IT生活 - 2011-01-26 00:44:26 阅读(419) 回复(1)

每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。 一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为一个类的构造函数的返回值的类型...

by meteorm - Java文档中心 - 2010-01-19 16:01:04 阅读(1905) 回复(0)

如果把成员函数的定义写在类里面,那这个函数就是自动inline的,对吗? 如果是这样,又有一个新问题: gcc 4.1.2的stl里面看到容器模板的成员函数都是在模板内定义的,这样当实例化这些容器时,得到的类,其成员函数会不会是inline的?如果是,那代码膨胀岂不是会很厉害

by cjog - C/C++ - 2010-08-01 08:17:01 阅读(3590) 回复(8)

dict与set一样,均是无序数据集合。 创建函数: copy() fromkeys(keys[, value]) copy隶属于浅拷贝。 fromkeys以keys中的每个元素对应一个value创建一个新的dict,value不一定是一个值,也可以是集合对象,比如list、tuple等(似乎除了list的extend,其他函数大都以整体对待一个参数对象)。 取值函数: keys() values() items() 这些函数均返回对应数据的全部集合。 has_key(key) get(key[...

by ivyforgood - Python文档中心 - 2008-06-29 11:47:21 阅读(2651) 回复(0)

插入函数: insert(index, value) append(value) extend(value) 如果value不是一个集合而只是单独一个数据的话,append与extend后的效果是一致的。但是当value是一个集合数据时,append则把value当作一个整体插入list,而extend则是把value中的各个元素拆开分别插入list。insert与append的语义相近,只是多提供一个位置参数index。 删除函数: remove(value) pop([index]) remove删除value的第一次出现...

by ivyforgood - Python文档中心 - 2008-06-29 09:49:29 阅读(2257) 回复(0)

之前用到C++的时候都没有用到所谓的静态成员函数,一般用到这个的时候都申明为普通的C函数了。后来又看到一种说法就是用这种静态的成员函数有利于封装。但是一直没有用过。 昨天室友用到这个部分,他之前用java比较多,现在用C++做类似的工作,用java的习惯语法来写了,出了不少问题。在用到静态成员函数的时候就出了一些编译错误,令人费解。问题如下: 首先申明类如下: class A { public: static void say(...

by oliliango - Linux文档专区 - 2009-04-26 17:30:17 阅读(1210) 回复(2)

:shock:这个问题是很古老的问题了,不过万万没有想到,昨天我居然在这里翻船了!!! 今天写出来,大家一起复习下 问题描述: 有类Class A { int fun(); } 在消息处理机制种遇到如下情况: 消息影射列表中 {Message,fun} 编译无法通过 解决方法如下: 修改函数声明 有类Class A { static int fun(); } 编译通过 结论如果其他函数需要使用fun函数,需要将函数生命为static。static为静态函数函数归类所有,拥有固定地...

by net_robber - C/C++ - 2006-03-08 12:36:56 阅读(1223) 回复(2)

代码如下:[code]#include #include __inline fac(int i) {return i*i;} int main(void) { printf("%d\n", fac(8)); return 0; }[/code]代码中,内联函数定义为无返回值类型的,函数体内部用return返回了结果,为什么这个函数能够编译通过且正常运行?求指教,多谢!

by snowboy9859 - Linux环境编程 - 2011-09-07 17:20:54 阅读(2259) 回复(3)