关于const限定符
我想问一下,如果我有以下一个函数
int *const test()
{
.....
}
我如果声明一个指向以上函数的指针应该怎么声明?我的作法是这样
int (*const x)()=test;
可是编译的时候有警告
warning C4090: 'initializing' : different 'const' qualifiers
不知哪里出错
问题点数:20、回复次数:8Top
1 楼foochow(无聊,灌水......)回复于 2005-06-01 00:16:37 得分 2
int*test()const;Top
2 楼mccxj(老鼠不逛街)回复于 2005-06-01 00:30:19 得分 2
int*test()const;
这个是正解!。。多看基础。。。Top
3 楼xjp6688(大平/要做必须最好)回复于 2005-06-01 07:12:20 得分 2
int*test()const;
Top
4 楼jixingzhong(瞌睡虫·星辰)回复于 2005-06-01 08:43:10 得分 2
int*test()const;
楼上的这么快!?Top
5 楼llf_hust()回复于 2005-06-01 08:47:03 得分 2
int*test()const;Top
6 楼whyglinux(山青水秀)回复于 2005-06-01 09:25:19 得分 2
int * const test() 表明函数的返回值是一个int指针常量。相应地,指向这个函数的指针应该这样定义和初始化:
int* const (*x)() = test;Top
7 楼bsnhk((void *)0)回复于 2005-06-01 09:55:10 得分 8
看到这么多人说int*test()const;是正解,小弟忍不住也要说几句。
我认为int * const (*bsnhk)();才是正解,而int*test()const;是一个语法错误的函数test的声明。
Top
8 楼ruyili9803(可爱多9803)回复于 2005-06-02 21:49:54 得分 0
bsnhk说的对哦!我用以上的一样有错误。Top




