7.1.2 函数说明符

7.1.2 函数说明符

1、函数说明符只能用于函数声明。

function-specifier:

inline

virtual

explicit

2、具有inline说明符的函数声明(8.3.59.311.4)声明了一个内联函数。内联说明符指示编译器优先在调用点进行函数体的内联替换,而不是使用常规的函数调用机制。编译器并非一点要在调用点执行内联替换;然而,即使忽略了内联替换,仍必须遵守7.1.2所定义的有关内联函数的其他规则。

3、在类定义内部进行的函数定义是内联函数。内联指示符不能出现在区块作用域内的函数声明中。(inline说明符不影响函数的链接属性。)

4、内联函数必须在被调用的每一个翻译单元中具有一致的定义(3.2)。[注意:在一个翻译单元中,对内连函数的调用可能出现于其被定义之前。] 如果在某个翻译单元中,具有外部链接的函数被声明为内联类型,那么在所有它出现的翻译单元中都必须声明为内联类型;无须诊断。另外,具有外部链接的内联函数,必须在所有的翻译单元中拥有相同的地址。在外部内联函数中,静态局部变量始终指向同一个对象。在不同的翻译单元中,外部内联函数中的字符串常量也是同一个对象。

5virtual说明符只能作用于出现在类声明的member-specification中的非静态类成员函数声明;参见10.3

6explicit说明符只能用于声明类声明中的构造函数;参见12.3.1

posted @ 2006-03-27 16:24  Goncely  阅读(228)  评论(0编辑  收藏  举报