【发布时间】:2018-12-26 14:30:00
【问题描述】:
所以给定一个typedef,它定义了一个函数指针,其参数名称如下:
typedef void(*FOO)(const int arg);
有没有一种方法可以让我使用这个函数指针来定义我的函数的签名?显然这行不通,但我想以某种方式使用typedef 来指定具有相应类型的函数签名:
FOO foo {
cout << arg << endl;
}
再一次,我知道这行不通,而且语法不好。它只会给出错误:
错误:
arg未在此范围内声明
【问题讨论】:
-
你不能声明这样的函数。带有函数的 Typedef 用于函数指针/引用。
-
您希望
cout << arg << endl;打印什么? -
FOO是一个函数指针。FOO foo { /* statements */ }应该是什么意思? -
这个问题没有任何意义。
FOO是函数指针的类型定义。写void FOO(const int arg)的方法不短 -
@Tyker 我试图用它来定义一个函数。所以我希望它打印任何传递给定义函数的东西。例如:我希望这可以被称为
foo(13)
标签: c++ parameters arguments function-pointers typedef