由买买提看人间百态

topics

全部话题 - 话题: 函数指针
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
g****t
发帖数: 31659
1
来自主题: Programming版 - 该怎么设计这个类?
定义个interface,或者用其他的语法糖。
但你既然问了这个问题,多半会被这些乱七八糟的东西
弄的很烦。
不如直接用 函数指针 完整的文档
另外这跟语言有关
Python meta programming 可能可以直接加函数进去
d*******2
发帖数: 340
2
来自主题: Computation版 - 请问一个函数传递结构的初级问题
要函数返回两个值,用指针解决了,但是想用结构也试一下,试着写了一个,知道肯定不对,请那位大虾有空看一下,先谢了!
struct merit
{ double merit1;
double merit2;
} mymerit;
主程序
main()
{
function (....merit mymerit); //调用子程序
....
}
子程序
function(....merit mymerit)
{}
调用子程序那一行总有错。说expect primary-expression before mymerit. 把
mymerit前面的merit去掉的话就说parameters has incomplete type “mymerit"
请问应该怎么写?先谢了!
J*****n
发帖数: 4859
3
#include "stdafx.h"
#include
#include
using namespace std;
typedef int (*T)(int, int);
int f(int a, int b=5){return a+b;}
int _tmain(int argc, _TCHAR* argv[])
{
T d=f;
cout< system("pause");
}
谢谢
a*******h
发帖数: 123
4
感觉是没有办法,像你这个T就是一个固定的取两个 int 参数的类型,不能再变了。C+
+这种强类型的语言,不觉得除了用模板以外可以在类型上有任何灵活性。
w*****e
发帖数: 197
5
还是老老实实用个functor吧
B*****t
发帖数: 335
6
you need to deference the pointer,
cout<<(*d)(2, 2)<
J*****n
发帖数: 4859
7

对functor理解不深刻,请教一下大概该怎么写呢?
谢谢。
S*********g
发帖数: 5298
w*****e
发帖数: 197
9
struct functor {
T *m_f;
functor( T *f ) : m_f( f ) { ; }
void operator() ( int arg1 ) const {
( *m_f )( arg1 ); // this will pass compiler
}
};
That's it.
functor d( f );
d( 1 );
w*****e
发帖数: 197
10
Shoot, this will NOT work.
Sorry for the confusion.
I think you are stuck in some sense.
S*********g
发帖数: 5298
11
#include
using namespace std;
typedef int (*T)(int, int);
class TT
{
public:
TT::TT(T f):ptr_f(f){}
int TT::operator()(int a, int b=5)
{
return ptr_f(a,b);
}
private:
T ptr_f;
};
int f(int a, int b=5){return a+b;}
int main(int argc, char* argv[])
{
TT d(f);
cout< system("pause");
}
j*****4
发帖数: 292
12
#include
using namespace std;
class add {
public:
int operator()(int A, int B=5) {
return A+B;
}
};
int main() {
add functor;
cout< system("pause");
}
S*********g
发帖数: 5298
13
The operator() can have default argument itself.
Below is an simple example that just works for your specific case.
If you want to have a more general solution, you will have to tell the
functor the information about the default argument in your function f in its
constructor.
You can achieve this by setting up a trait to pass along with you function
pointer.
#include
#include
using namespace std;
typedef int (*T)(int, int);
class TT
{
public:
TT::TT(T f):ptr_f(f){}
j*******2
发帖数: 386
14
来自主题: Military2版 - 龙芯3B流片成功[zz]
小菊啊,就不要丢人了。
并行计算有很多种方式,
Data parallel
Task parall
streaming parallel
还有hybrid的
GPU也就只能在Data Parallel搞一搞。而且有很多限制的,比如不能有函数指针,动态
内存。内存访问要求比较规整,连续。不能有很多分支
你就不要到处丢人了。
h**k
发帖数: 3368
15
来自主题: JobHunting版 - C interview question
定义一个函数指针 MyFun
c******f
发帖数: 2144
16
比如要充分理解了哪些东西才够?感觉这块绕一绕 就不清楚了
比如 **pointer这样的 什么时候传什么值给函数 挺模糊的
S*******w
发帖数: 24236
17
多写几个函数
h**k
发帖数: 3368
18
来自主题: JobHunting版 - 回馈本版,贴ms onsite面经
你这里定义了两个函数指针类型,似乎和题目的要求无关吧?
看不懂原题是要求什么。
l*********a
发帖数: 445
19
来自主题: JobHunting版 - (C / C++) 关于指针的引用,求助
看下面代码:
func()
{
std::vector _arr;
int* p = new int(0);
_arr.push_back(p);
p = new int(1);
_arr.push_back(p);
/* 若采用局部变量 p2 表示_arr第二个元素的引用,可以:*/
int*& p2 = _arr[2];
/* 问题:若p2不是局部变量,而是全局变量,也就是在说 p2 在函数体外部已经
声明为 int* p2 了,请问这时如何采用 p2 来表示_arr第二个元素的引用 ??? */
f****a
发帖数: 4708
20
来自主题: JobHunting版 - (C / C++) 关于指针的引用,求助
/* 若采用局部变量 p2 表示_arr第二个元素的引用,可以:*/
int*& p2 = (_arr[1]); // not [2]
/* 问题:若p2不是局部变量,而是全局变量,也就是在说 p2 在函数体外部已经
声明为 int* p2 了,请问这时如何采用 p2 来表示_arr第二个元素的引用 ??? */
Can't be a reference. For the value of the 2nd element:
int * p2;
p2 = _arr[1];
r***u
发帖数: 241
21
来自主题: JobHunting版 - Apple的一些C++概念题

应该是2次,先从vptr查表,再调用表中存的函数指针
都是8
n********5
发帖数: 323
22
来自主题: JobHunting版 - 问道C的面试题
应该是一函数指针的数组
n********5
发帖数: 323
23
来自主题: JobHunting版 - 问道C的面试题
应该是一函数指针的数组吗
h**6
发帖数: 4160
24
来自主题: JobHunting版 - 问道C的面试题
声明了一个返回int*参数为空的,函数指针数组。
d********w
发帖数: 363
25
来自主题: JobHunting版 - c模拟c++的继承和多态
看到一篇lighttpd源码剖析,http://www.cnblogs.com/kernel_hcy/archive/2009/10/23/1588873.html,发现它的数据结构设计的挺精妙的,比如在定义array时候
通过DATA_UNSET宏,其他类型在定义中直接引用DATA_UNSET宏来模拟继承
通用数组中存放的数据可以是通用数组,这样可以形成多维的通用数组。
typedef struct {
 DATA_UNSET;
 array *value;
} data_array;
之前看其他开源的代码,有种技巧是使用函数指针和二维数组来实现多态,不过我记得
不大清了,请高人指点完整写法。
比如:
typedef struct {
int (*init)(events *ev);
const char *description;
int num;
} event__t;
int call_back1(events *ev);
int call_back2(events *ev);
int call... 阅读全帖
Z**********4
发帖数: 528
26
来自主题: JobHunting版 - java没有指针真麻烦
恩。。的确很简单
我只是想怎么自己写这种函数 呵呵
a********m
发帖数: 15480
27
用函数指针应该可以。然后强制赋值。
a********m
发帖数: 15480
28
声明函数指针变量的时候写好参数就可以了吧。如果需要字节解决参数传递/压栈就太
复杂了,而且也失去了可移植性。
y**********u
发帖数: 6366
29
来自主题: JobHunting版 - c语言实现TreeFee

of
这个函数指针是free datum的么?
就是写个递归啊。。。
h****n
发帖数: 1093
30
来自主题: JobHunting版 - 请教一个指针的面试题
感觉你说的对,p1完全没啥用处,出了函数p1的值不会被改变
0x12fec8地址存的是9个连续int的最后一个的地址
可能是用来便于下一次连续放9个val2的操作吧
这个题有个follow up说怎么精简代码,我瞎写了一个如下
void foo(int val1, int val2)
{
int step = sizeof(int);
for(int i=0;i<9;i++)
{
*((int *)val1) = val2;
val1 += step;
}
*((int *)0x12fec8) = val1 - step;
}
w**********2
发帖数: 20
31
来自主题: JobHunting版 - G家面经,求bless
到上周五为止, 我再G家已经面了七个interviewer了, 一个phone interview, 一轮
on-site 四个interviewer, 一轮加面两个interviewer。题目都不难,基本都是常见
题,大家做过的。我总结下板上讨论比较少的几个问题。
1. 我是用python答的题,我写起来比较顺手。7个interviewer 中有一个表示他python
不熟,希望我用别的,但是我自己知道用别的肯定挂,所有坚持用了python并且向他保
证思路一定清晰,好理解。他那题实际上用c++会涉及到一些函数指针当参数,c++长期
不用,估计直接就跪了。python帮我简化了不少。
2. 有一类题型,大家好像没有讨论过,就是一个很大的2D矩阵,如果某点的值,由他
周围某些点的值决定,(例如下一时刻(i,j) 的值取当前时刻他的8邻点的平均),怎么
用MapReduce做。这个其实MapReduce比较熟悉的,想通了特别简单,但到时我差点挂在
那了。折腾了半天才弄出来。
3. 常见题型大家要练熟,思路要清晰。我的问题是做的太慢,一个interviewer 最多
两题,而且基本第一题就... 阅读全帖
b******b
发帖数: 300
32
来自主题: JobHunting版 - 问一个c++ 函数指针的问题
请问如果定义一个object应该怎么写呢
h**6
发帖数: 4160
33
来自主题: JobHunting版 - 问一个c++ 函数指针的问题
class Calculator{
public:
int add(int a, int b){
return a+b;
}
int subtraction(int a , int b){
return a-b;
}
};
typedef int(Calculator::*CalPointer)(int,int);
Calculator calc;
CalPointer func1 = &Calculator::add;
int a = (calc.*func1)(2, 3);
std::function func2 = std::bind(&Calculator::add, &calc, _1, _
2);
int b = func2(4, 5);
printf("a=%d, b=%d\n", a, b);
f**********d
发帖数: 4960
34
用函数指针不行?
l*******b
发帖数: 2586
35
来自主题: JobHunting版 - 一道A家店面题求解
函数指针20行差不多能搞定吧
p*****2
发帖数: 21240
36
来自主题: JobHunting版 - 一道A家店面题求解

java没有函数指针吧?得用scala吧?
f*******n
发帖数: 12623
37
来自主题: JobHunting版 - void * 和 char * 有区别吗?
不对。函数指针不可以
s**x
发帖数: 7506
38
第一个是java 的吧?c 里面世纪上没有数组参数这个概念,就是一指针.
Void f(int *a)
Void f(int a[]) 应该是等价的。

★ 发自iPhone App: ChineseWeb 7.8
b******7
发帖数: 92
39
数组作参数要带上长度
void func(int a[],size_t len)
c/c++不能直接用参数传递数组,而将其转化为指针传递
上面的定义等价于void func(int * a,size_t len)
测试如下的case就可知道
void func(int a[], size_t len)
{
cout< }
int main()
{
int a[] = {1,2};
cout< func(a,sizeof(a)/sizeof(int));
return 0;
}
b***m
发帖数: 5987
40
按一般都用指针加长度。
s********r
发帖数: 403
41
那个其实只是用了一个函数指针指向了合法地址,
还是需要实例化的对象来发动。
t****g
发帖数: 35582
42
来自主题: PhotoGear版 - 说道C语言
不过严格的来说,C没法OOP的。
也可以实现类方法的包装,不过要用函数指针和回调。但总之不是正路子方法。
w*********l
发帖数: 1337
43
来自主题: PhotoGear版 - 说道C语言
那你觉得c++的多态不是函数指针是吗?
d**********o
发帖数: 1321
44
来自主题: WebRadio版 - 潜水员冒泡兼征版友意见
读博士?见鬼去吧!
从开学第一天起,我就告诉过导师,我岁数大了,我读不了博士,只想能早点儿毕业早
点儿去工业界工作。但回望这读硕士的两三年时间里,这个计算机系、这个计算机系的
代课老师们,他们一直试图使用种种手段逼迫我读博。13年春天我前导师想要给我奖学
金却还要装模作样,任何学校每年决定一次的RA名额,到了这所学校这里就变成了RA需
要保有两年期效?13年夏天我有机会找到实习了吧,秋天一回到学校就被前导师用种种
不公正手段打倒粉碎为那门课得C,将夏天受启发得到的一丝成就感与自信淹没在前导
师强憾和一手遮天的海浪里!14年初夏,别人好不容易有机会可以出去工作,却还是被
EC代课老师用授课内容阻拦拦截,一所学校,他何至于要这样对待他的学生?14年秋天
关于选EC代课老师的robot课不还是一种赤裸裸的逼迫吗?就连这个春天,他们也丝毫
不曾放弃过!
再来看看除读博外其它我在这所学校所受的种种待遇吧。2012年9月tic-tac-toe有着
诸多要求的programming language第二次作业,我分明是班上仅有的一两个写出来的同
学之一(另一个写出来的同学,他爸爸是剑桥毕业的,后来在... 阅读全帖
r****y
发帖数: 26819
45
来自主题: Apple版 - 新的xcode3.2不错
iphone OS 3.1还不支持。没有看到3.1介绍这个变化。
在3.1上尝试closures,会碰到编译错误,报函数指针Symbol not found。
不过第三方实现的iphoneOS3.0和10.5上的closures:
http://www.plausiblelabs.com/blog/?p=8
r***s
发帖数: 737
46
sun jvm 主要用c++写的
ibm production jvm 也是用c++写的,只有jikes rvm是用java写的
intel 和 microsoft的优化编译器也是用c++写的
visual studio大部分都是c++
linux和其他一推用c写的库里面用函数指针来实现c++里的late binding
r********3
发帖数: 2998
47
来自主题: CS版 - 面向对象是谁发明的阿?
不会啊。我觉得Linux内核代码真的是面向对象的好处。
比如说Linux内核的驱动,就是典型的面对对象。虽然C没有class,但是Linus居然用
struct和函数指针的方式来实现了面向对象,相当赞!
t***m
发帖数: 358
48
来自主题: CS版 - 面向对象是谁发明的阿?
这有什么可赞的。OO内部本来就是这么实现的。早期的C++就是C的wrapper,class
precompile成 C 的struct加函数指针,然后再调c的compiler。
b***i
发帖数: 3043
49
是java,如果原来的代码是c++, 就是我写的那样,可以用引用或者指针获得地址,从而
给变量赋值。现在要转换成java,如何写呢?
C++程序如下
我有一个类叫storage,其中有个数组double ok[100];
还有个方法acquirereference(int a)想返回ok[a]的引用,比如我在主程序中
storage m;
double& storage::acquirereference(int a)
{
return ok[a];
}
double& myvalue=m.acquirereference(10);// here to get &ok[10] as in c++
myvalue=5;可以让ok[10]获得5。
应该怎样写java的方法acquirereference的返回值类型和return 的参数呢?
l*********n
发帖数: 51
50
不是吧,怎么样基本的控制,函数,指针,还是要学的。c怎么会没有?
合在一门课那OO,STL,template还有时间上吗?
国内哪个学校是这么开的?
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)