inline函数是否可以访问静态成员变量
来源:百度知道 编辑:UC知道 时间:2024/05/16 12:27:12
请高手赶紧帮忙啊,我要考试了
可以啊,内联函数就相当于把函数展开,所以就相当于一系列语句,并不是真正的函数
可以
class A
{
public:
inline int Get(){return s_x;};
static int s_x ;
};
int A::s_x = 0 ;
int main(void)
{
A a;
A::s_x = 3 ;
int y = a.Get();
}
可以,inline 只是提供给编译器的一个建议,具体怎么做要看实际情况而定,比如说如果函数内出现循环,那么编译器通常不会将其内联。而且是否内联可以通过一系列编译选项和宏来控制,即便如此,具体怎么做仍要看编译器,也可以使用 #pragma auto_inline( [{on | off}] ) 来告知编译器使之自动决定是否内联某些函数 。对于直接在类定义内部实现的函数就相当于前面加上 inline 关键字 。
综上所述,内联函数在功能上与普通函数相同 。