以下声明是什么意思?
typedef int (&rifii) (int,int);
它是对函数的引用吗?如果是,不应该初始化吗?
答案 0 :(得分:8)
它定义 type “对一个函数的引用,该函数需要两个int
并返回一个int
”。需要初始化该类型的变量,但不能将初始化程序放入typedef中。它与例如没有区别。 int
:
int i;
typedef int& intref; // no initializer allowed
intref ri(i); // initializer required
int f(int, int);
typedef int (&rifii) (int,int); // no initializer allowed
rifii rf(f); // initializer required
答案 1 :(得分:2)
它是一个typedef
,所以不能“初始化”,它只是为类型“引用函数返回一个int并将两个int作为参数”引入了一个新名称。
答案 2 :(得分:1)
它是一个函数的引用,它接受两个参数,其返回类型为int
未初始化typedef:
typedef int (&rifii) (int,int);
当您声明类型rifii
的引用时,必须初始化它。
rifii r = foo;
{' foo
'是一个函数,int foo(int, int);
答案 3 :(得分:0)
对函数的引用是typedef
。并且无法初始化typedef。想想typedef int rank_t;
也没有初始化。
答案 4 :(得分:-2)
typedef
就像进入一个晚宴,说你好,我是Ed - 那道菜上没有肉。这个定义会给那些骨头带来肉体。