C/C++基础学习:整理static,入门STL,map,vector

本文详细介绍了C/C++中的static关键字,包括静态成员变量、静态成员函数、静态全局变量和静态局部变量的特点和用法。同时,探讨了静态函数的作用,并讲解了C++中的STL容器map和vector的使用,包括插入、查找、删除等基本操作。
摘要由CSDN通过智能技术生成

C/C++中的static关键字

.静态成员变量(oop)

.静态成员函数(oop)

.静态全局变量

.静态局部变量

.静态函数

静态成员变量

在类内的变量的声明前加上关键字static,该数据成员就是类内的静态数据成员。

class Myclass
{
public:
	Myclass(int a,int b,int c);
	void GetSum();
private:
	int a,b,c;
	static int Sum;//声明静态数据成员
};

​ 特点:

​ 1.静态成员变量是该类的所有对象所共有的。对于普通成员变量,每个类对象都有自己的一份拷贝。而静态成员变量一共就一份,无论这个类的对象被定义了多少个,静态成员变量只分配一次内存,由该类的所有对象共享访问,所以,静态数据成员的值对每个对象都是一样的,它的值可以更新。

​ 2.因为静态数据成员在全局数据区分配内存,由本类的所有对象共享,所以,它不属于特定的类对象,不占用对象的内存,而是在所有对象之外开辟内存,在没有产生类对象时其作用域就可见。因此,在没有类的实例存在时,静态成员变量就已经存在,我们可以操作它;

​ 3.静态成员变量存储在全局数据区。static成员变量的内存空间既不是在声明类时分配,也不是在创建对象时分配,而是在初始化时分配。静态成员变量必须初始化,而且只能在类体外进行。否则,编译能通过,链接不能通过。

静态数据区的变量都有默认的初始值,而动态数据区(堆区、栈区)的变量默认是垃圾值。

​ 4.static成员变量和普通static变量一样,编译时在静态数据区分配内存,到程序结束时才释放。这就意味着,static成员变量不随对象的创建而分配内存,也不随对象的销毁而释放内存。而普通成员变量在对象创建时分配内存,在对象销毁时释放内存。

​ 5.静态数据成员初始化与一般数据成员初始化不同。可以不加static,但必须要有数据类型。被private、protected、public修饰的static成员变量都可以用这种方式初始化。格式:<数据类型><类名>::<静态数据成员名>=<值>

​ 6.类的静态数据成员的变量访问形式1: <类对象名>.<静态数据成员名>

​ 7.类的静态数据成员的变量访问形式2: <类类型名>::<静态数据成员名>,即静态成员不需要通过对象就能访问

​ 8.静态数据成员和普通数据成员一样遵从public,protected,private访问规则;

​ 9.如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员

​ 10.sizeof运算符不会计算静态成员变量。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值