C++的两个关键字——friend & static

2019-02-28  本文已影响0人  南凹痴之

static

static 本意为“静态”,其修饰的变量存放于静态存储区(同全局变量一样),其作用域和生存期也会与普通变量所不同。
依照位置,可以分为四种

全局变量前

这个改变了变量的作用域,具体不累述。

局部变量前

这个可以改变该局部变量的生存期,使之一直保持在程序结束之后,而作用域不变。这一特性,减少了全局变量的使用,符合良好的编程习惯,如在如下程序中——

void Test()
{
      while(true)
      {
           ...
           static count; //即便不初始化也ok,因为static变量默认值为0.
           count ++;
      }
}

同时,需要指出的是:static变量,在程序运行初始化的时候,就已经先初始化了,并非是顺序执行到这里时才赋值。这一点,在VS中Debug时,便会发现,调试过程中根本不会执行static count;这一条语句。

类的数据成员

类的成员函数

参考:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/19/2598815.html

friend

友元函数

#include<iostream>
using namespace std;

class Test
{
    int a ;
public:
    friend void setA(Test& t,int aa);
};
void setA(Test& t,int aa)
{
        t.a = aa;
        cout<< t.a << endl;
}


int main()
{
    Test t;
    setA(t, 3);
    cout<<"hello world!"<<endl;
    return 0;
}

友元类

当在A中定义了其friend为B时,B的成员函数便可以访问A的私有变量,同上。

上一篇 下一篇

猜你喜欢

热点阅读