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 关键字 。
综上所述,内联函数在功能上与普通函数相同 。