当前位置:   article > 正文

C++static静态变量_c++ static变量

c++ static变量

1、static 变量在静态区,不管是局部静态还是全局静态,其生命周期与程序相同。从作用域和生命周期考虑问题分析。在内存分区的全局数据区分配内存,用时可以改变其值。
2、static静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化; 静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;
3、static 类成员变量,static类成员不像普通的类数据成员,static类数据成员独立于一切类对象存在。静态数据成员只分配一次内存。静态数据成员存储在全局数据区。static类数据成员是与类关联的,但不与该类定义的对象有任何关系。static类对象必须要在类外进行初始化。所有对象共享一个static类成员。
4、static:静态全局变量只在定义它的文件内有效,也在全局数据区,默认自动初始化为0。
5、static 函数 1.出现在类内:静态类函数不会访问或者修改非static数据成员和成员函数,类的静态成员(变量和方法)属于类本身,而非对象的。也就是所有该类的对象共同拥有这一个成员函数,而不是普通的每个对象各自拥有一个成员函数 。因此static类成员函数是没有this指针的,this指针是指向本对象的指针,static类成员函数不能访问非static的类成员,只能访问 static修饰的类成员
6、static 函数 1.出现在类外,用static修饰的函数,限定在本源码文件中,不能被本源码文件以外的代码文件调用。而普通的函数,默认是extern的,也就是说它可以被其它代码文件调用。
————————————————
版权声明:本文为CSDN博主「小飞侠hello」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_16370559/article/details/91781127

使用static变量统计对象的个数,代码如下:

// static.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "pch.h"
#include <iostream>
using namespace std;

class Point
{
public:
	Point(int x = 0, int y = 0):x(x),y(y)
	{
		count++;
	}
	Point(Point &p)
	{
		x = p.x;
		y = p.y;
		count++;
	}

	~Point() { count--; }
	int getX() { return x; }
	int getY() { return y; }
	void showCount() { cout << "Object count = " << count << endl; }
private:
	int x, y;
	static int count; //静态数据成员声明
};

int Point::count = 0;


int main()
{
	Point a(4, 5);
	cout << "Point a: (" << a.getX() << "," << a.getY() << ")" << endl;
	a.showCount();

	Point b(a);
	cout << "Point B:(" << b.getX() << "," << b.getY() << ")" << endl;
	b.showCount();
	return 0;
    
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

结果如下:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/469832
推荐阅读
相关标签
  

闽ICP备14008679号