static

static

函数中的静态变量

当变量声明为static时,空间将在程序的生命周期内分配。即使多次调用该函数,静态变量的空间也只分配一次,前一次调用中的变量值通过下一次函数调用传递。这对于在C / C ++或需要存储先前函数状态的任何其他应用程序非常有用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void demo() 
{
static int count = 0;
cout << count << " ";
count++;
}

int main()
{
for (int i=0; i<5; i++)
demo();
return 0;
}
// output
0 1 2 3 4

类中的静态变量

类中的静态变量由对象共享。对于不同的对象,不能有相同静态变量的多个副本。也是因为这个原因,静态变量不能使用构造函数初始化。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Apple 
{
public:
static int i;

Apple()
{
// Do nothing
};
};

int Apple::i = 1;

int main()
{
Apple obj;
// prints value of i
cout << obj.i;
}
// output
1

类中的静态函数

静态成员函数也不依赖于类的对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Apple 
{
public:
// static member function
static void printMsg()
{
cout<<"Welcome to Apple!";
}
};

// main function
int main()
{
// invoking a static member function
Apple::printMsg();
}
  • Copyrights © 2018-2022 Haojia Zhu
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信