day03 - 17 静态成员变量 和静态成员函数

class AA{

   public:

   AA(int a, int b) {
       m_a = a;
       m_b = b;

  }
  

private:
   int m_a;
   int m_b;
   static m_c;

}

//表示此函数只在本文件内有效
static test(){

}

int main(void)
{
   AA a1(10,20);
   AA a2(100,200);
    
  

}

声明的时候,Class AA不开辟内存空间

静态成员变量m_c 存储在静态数据区

静态变量初始化的时候,一定类的外面

class {

........

}

int AA::m_c = 0;   //不管私有公有都必须在类外面初始化,m_c对整个类共享

可以通过类名访问静态成员 


AA::m_c = 200; //或者a1.m_c = 200 一样

如果m_c为私有成员,要想访问一个它只能提供一个静态成员方法,静态成员方法也是属于类的

static int getMc()
{
       return m_c;
}
private:
    static int m_c;  //静态成员也受访问修饰符影响

例子1:

class Box
{
	
public:
	Box(int l,int w)
	{
		m_len = l;   //堆上分配内存空间
		m_width = w;
	} 
	
	int volume()
	{
		int v = m_len *m_width* height;
		cout<<"高度是"<

运行结果:

day03 - 17 静态成员变量 和静态成员函数_第1张图片

静态成员总结:

1.static成员变量实现了同类间信息共享

2.static 成员类外存储,求类大小,并不包含在内

3.static 成员是命名空间属于类的全局变量,存储在data区。

4.static 成员只能类外初始化。

5.可以通过类名访问(无对象生成时亦可),也可以通过对象访问。

你可能感兴趣的:(C++)