C++ 我的非成员静态函数允许更改和创建非静态变量
这是代码片段C++ 我的非成员静态函数允许更改和创建非静态变量,c++,C++,这是代码片段 static chck()//tracking how many times main has been called { static a=0; int y=0;//this is not supposed to work cout<<"Total time main has been called: "; a++; return a; } static chck()//跟踪调用main的次数 { 静态a=0; int y=
static chck()//tracking how many times main has been called
{
static a=0;
int y=0;//this is not supposed to work
cout<<"Total time main has been called: ";
a++;
return a;
}
static chck()//跟踪调用main的次数
{
静态a=0;
int y=0;//这不应该起作用
CUT< P> <代码>静态< /代码>可能是C++中使用最频繁的关键字。第一次使用它是指<代码> CHCK()/<代码>的链接,即它具有内部链接。第二次使用使<代码> A<代码> >代码>静态< /代码>关于调用<代码> CKCH.()
,即它的值将在调用之间保留。您可以认为类的静态
成员函数不能访问非静态
数据成员,即每个对象实例创建的数据成员。在这种情况下,“y”是该函数可以访问的堆栈变量
理论是静态成员函数(类中的静态方法)无法访问非静态成员变量(类中的非静态变量),因为没有“this”这样的对象静态成员函数内部。静态
成员函数无法使用/更改非静态数据成员,因为这毫无意义。该函数不会在任何对象上调用以使用其成员。这静态
仅意味着该函数具有内部链接。这完全不同。非成员静态函数具有什么功能链接?考虑阅读通过