我是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时,出现错误,提示“预期标识符”。
如果您决定帮助我,请指定哪个*响应哪个需求(“ *是在这里,因为您需要指向函数的指针”等)
答案 0 :(得分:2)
这样做的时候
using ptr = int* (*) (int*);
您声明一个名为ptr
的别名,类型为int* (*) (int*)
。
如果您尝试这样做
ptr = &func
你基本上是在说
int* (*) (int*) = &func
如您所见,它不起作用,因为没有变量名,只有一个类型。
您需要的是
ptr my_ptr = &func;
创建类型为my_ptr
(ptr
)的变量int* (*) (int*)
。