阅读:2077回复:12
两个有意思的C++用法,感兴趣者看一下.
最近看书,发现有两个有意思的C++用法,作者说只有C++高手才这么用,因此写在这里,感兴趣者请说明他们的含义.回复正确者有分.
1) void Function(void( *)(int &, int &), int &, int &); 2) void (Aclass:: *pAclassFuncArray[10])(int &, int &); [编辑 - 11/8/04 by wkq清秋枫叶] |
|
沙发#
发布于:2004-11-08 11:46
这种用法在C里能经常看到的
1、在C里的叫回调函数 2、只是简单的指针函数 |
|
|
板凳#
发布于:2004-11-08 12:43
路过 看一下
|
|
|
地板#
发布于:2004-11-08 13:29
这种用法在C里能经常看到的 呵呵,不一定要高手才能用的,只是使用时小心些就好,毕竟是指针嘛 |
|
地下室#
发布于:2004-11-08 13:49
这种用法在C里能经常看到的 都是指针啦,到了汇编都一样 |
|
5楼#
发布于:2004-11-08 14:01
我个人的理解(其实是书上的说法)是:
1)这是一个函数声明,这个函数有三个参数,第一个参数是一个函数指针,另外两个参数是整型引用; 2)这是一个数组声明,该数组的成员是类Aclass的成员函数的指针,这些成员函数定义如下: void FunctionX(int &, int &); [编辑 - 11/8/04 by wkq清秋枫叶] |
|
6楼#
发布于:2004-11-08 17:19
我个人的理解(其实是书上的说法)是: 当然是声明 2.第一眼没看出是数组,没有[10],就是指针函数的声明 void (Aclass:: *pAclassFuncArray)(int &, int &); 第二个更确切说应该是“指针函数数组的声明” [编辑 - 11/8/04 by snowStart] |
|
|
7楼#
发布于:2004-11-09 09:16
感谢大家参与.包括路过的,一律送分.
[编辑 - 11/9/04 by wkq清秋枫叶] |
|
8楼#
发布于:2004-11-09 11:27
可以把例句放出来吗
|
|
9楼#
发布于:2004-11-09 16:43
"可以把例句放出来吗"
你是指这两种用法的实际例子吗? 如果是的,我将给出.如果不是,请再说明. |
|
10楼#
发布于:2004-11-09 17:22
路过看一把,学一把
|
|
11楼#
发布于:2004-11-12 22:11
你么。。。,有Bing,浪费时间。
|
|
12楼#
发布于:2004-11-23 11:38
1) void Function(void( *)(int &, int &), int &, int &);
Function有三个参数 第一个参数是一个函数指针,剩下的是引用. 如 void myadd(int &a ,int &b) { a=a+b; } void Functiona(Void(*myadd)(int&,int&),int &d,int &e) { myadd(d,e); } void main() { int x,y; x= 5; y=6; Functiona(myadd,x,y); cout << x; } 则输出11 [编辑 - 11/23/04 by forever_xor] |
|
|