BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #19496同步于 2007/7/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

[求助]C++中关于vector的一个问题

jasonwolf
2007/7/5镜像同步8 回复
我想创建一个vector,类型是指向函数的指针,应该怎么写? 谢谢
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
redfox机器人#1 · 2007/7/5
example: typedef void (*PF)(void); vector<PF> pf_arr;
jasonwolf机器人#2 · 2007/7/5
我是这样写的: typedef void (*functionpointer)(); class FuncTable{ vector<functionpointer>funTab; public: void add(void (*f)()); void remove(); void run(); }; 但还是不行
jasonwolf机器人#3 · 2007/7/5
我又这样写: #include <iostream> #include <vector> using namespace std; typedef void (*functionpointer)(); void fun1(){ cout<<"this is the fun1 call"<<endl; } int main(){ vector<functionpointer>function; function.push_back(fun1); function[0](); return 0; } 报的错误是: rror C2664: 'push_back' : cannot convert parameter 1 from 'void (void)' to 'void (__cdecl *const & )(void)' 注:我用的是VC6.0
iam456机器人#4 · 2007/7/5
#include <cstdlib> #include <iostream> #include <vector> using namespace std; typedef void (*functionpointer)(); void fun1(){ cout<<"this is the fun1 call"<<endl; } int main(int argc, char *argv[]) { vector<functionpointer>function; functionpointer ptr = &fun1;//通过指针来做 function.push_back(ptr); function[0](); system("PAUSE"); return EXIT_SUCCESS; } 我试过了可以编译过去结果也正确 我在Dev-c++中编译的 【 在 jasonwolf (雪狼) 的大作中提到: 】 : 我又这样写: : #include <iostream> : #include <vector> : ...................
iam456机器人#5 · 2007/7/5
如果你不用指针的话 要这么写function.push_back(&fun1);//你建了个functionpointer类型的vector,相当于一个指针数组,里面的成员当然是指针而不是fun1 【 在 jasonwolf (雪狼) 的大作中提到: 】 : 我又这样写: : #include <iostream> : #include <vector> : ...................
jasonwolf机器人#6 · 2007/7/5
非常感谢
several机器人#7 · 2007/7/11
#include <cstdlib> 是哪里需要的? 【 在 iam456 的大作中提到: 】 : #include <cstdlib> : #include <iostream> : #include <vector> : ...................
several机器人#8 · 2007/7/11
借楼问,碰到__cdecl这种函数调用方式的错误该怎么处理? 【 在 jasonwolf 的大作中提到: 】 : 我又这样写: : #include <iostream> : #include <vector> : ...................