就这么几行程序,但是编译不过去,请大家帮忙.

xyzguan 2003-07-15 11:03:47
class myclass
{
int i;
int ii;
};

template<class GxType>
typedef GxType *ITEM_NEW(void);

template<class GxType>

void fun(ITEM_NEW* aa)
{
}

myclass *intNew()
{
return new myclass;
}

int main(int argc, char* argv[])
{
fun<myclass>(intNew);
printf("Hello World!\n");
return 0;
}
...全文
81 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sirwzb 2003-07-24
  • 打赏
  • 举报
回复
typedef不能模板化!!!
xyzguan 2003-07-15
  • 打赏
  • 举报
回复
但是我如何调用fun的这个参数呢?
wlfjck 2003-07-15
  • 打赏
  • 举报
回复
#include <stdio.h>
class myclass
{
int i;
int ii;
};

template<typename T>
void fun( T*(*)() )
{
}

myclass* intNew()
{
return new myclass;
}

int main(int argc, char* argv[])
{
fun(&intNew);
printf("Hello World!\n");
return 0;
}

修改过后的程序,可以编译
zh7780 2003-07-15
  • 打赏
  • 举报
回复
fun<myclass>((ITEM_NEW*)intNew);
改成这样就好啦!

不要忘了#include <stdio.h>
xyzguan 2003-07-15
  • 打赏
  • 举报
回复
但是我用的是使用了模板的函数,而并不是要把函数指针做成模板阿?

我只想把这样的函数作为参数来传递。
蝎子i软件 2003-07-15
  • 打赏
  • 举报
回复
我试了...
Templates must be classes or functions

看来函数指针是不能做成摸板了。
xyzguan 2003-07-15
  • 打赏
  • 举报
回复
依旧是不过:(

另外我用的是vc6+2kpro
蝎子i软件 2003-07-15
  • 打赏
  • 举报
回复
template<class GxType>
typedef GxType (*ITEM_NEW)(void);

试试

24,861

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧