一大波放鄙视接近中

一个个来,首先static

static成员变量只能类外初始化  type classname::var(=x);

static函数可以类里定义也可类外...

而貌似static 非成员函数的static只表示该函数仅该文件可见...

关于引用

引用要绑定实体,这个实体是 int &ra=func(); 语句等号右边的值,即函数func()的返回值(也是一个引用,而这个引用每次调用时在return 语句中被初始化为静态变量a),
所以,ra的实体是a。
代码:

程序代码:

#include <iostream>
using namespace std;
int & func()
{
static int a; //静态局部变量a的生命周期是全局的
static int j;
printf("&a=%ld,&j=%ld ",&a,&j);
return a;//返回一个生命周期长于func函数执行期的变量
}
int main()
{
int i;
int &ra=func(); //ra为静态变量的别名
printf("&ra=%ld,&i=%ld ",&ra,&i);
cout<<func()<<endl; //输出0 ,静态变量默认为0
func()+=8;     //作为左值使用
cout<<func()<<endl;//输出8
ra +=10;                  // 丧失了局部可见性
cout<<func()<<endl;//输出18
return 0;
}


可以证明ra的实体是a。

关于构造执行顺序 http://tieba.baidu.com/p/2615857662

先mark一下

原文地址:https://www.cnblogs.com/cavehubiao/p/3341117.html