Chinaunix

标题: 看到一个变态的函数声明,谁能解释一下 [打印本页]

作者: tinywind    时间: 2008-01-16 10:38
标题: 看到一个变态的函数声明,谁能解释一下
volatile struct A*volatile* foo() const volatile;

前两个volatile还能看懂,最后的const volatile是什么意思啊
作者: flw2    时间: 2008-01-16 10:51
我用g++编译出错
我看不懂,一会查查手册
作者: flw2    时间: 2008-01-16 11:41
volatile int volatile* foo() const volatile;
volatile int volatile* foo() const volatile;
前面两个volatile是重复的(我实验了一下,gcc允许,g++不允许)

volatile int* foo() const volatile;
后面那个修饰是用于成员函数吧,也没有见过volatile放在后面修饰,只见过const
作者: tinywind    时间: 2008-01-16 12:40
原帖由 flw2 于 2008-1-16 11:41 发表
volatile int volatile* foo() const volatile;
volatile int volatile* foo() const volatile;
前面两个volatile是重复的(我实验了一下,gcc允许,g++不允许)

volatile int* foo() const volatile;
后面 ...

后来查了一下资料大致搞清了。
前两个volatile没有重复,第2个volatile是在两个*之间,你少看了个*
后面的const volatile是修饰成员函数的。如果类实例声明为const的话,只能使用用const修饰的函数,volatile同理。
作者: Sorehead    时间: 2008-01-16 13:25
C++的东西呀,难怪不懂。

学习了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2