在C ++中使用“使用”

时间:2019-11-21 19:43:22

标签: c++

我是C ++的新手,我试图了解在C ++中使用关键字“ using”的背后逻辑。可能有人问过这种类型的问题,但是我在寻找包含“使用”一词的有用信息时遇到了问题。我想要做的是获取一个变量,该变量是一个指向函数的指针,该函数返回一个指向int的指针,并将一个指向int的指针作为参数。 我想做的事:

函数定义:

int* funct (int* p) {cout << "function called"; return p;}

现在,如果我使用C语言进行编码,这就是我想做的事情

int* (*ptr)(int*) = &funct;

我想做的是:

using ptr = int* (*) (int*);

但是,当我尝试使用ptr = &func之类的ptr时,出现错误,提示“预期标识符”。 如果您决定帮助我,请指定哪个*响应哪个需求(“ *是在这里,因为您需要指向函数的指针”等)

1 个答案:

答案 0 :(得分:2)

这样做的时候

using ptr = int* (*) (int*);

您声明一个名为ptr的别名,类型为int* (*) (int*)

如果您尝试这样做

ptr = &func

你基本上是在说

int* (*) (int*) = &func

如您所见,它不起作用,因为没有变量名,只有一个类型。

您需要的是

ptr my_ptr = &func;

创建类型为my_ptrptr)的变量int* (*) (int*)