2.0 C++远征:静态

静态

二、静态

关键字:static

“静态”使用场景:用作全局的。

1.静态数据成员

依赖于类,并不依赖于对象。

所开辟的内存并不在对象中。

对象声明多个,但静态数据成员只会有一份。

普通数据成员依赖于对象,对象析构则不存在。

// Tank.cpp
class Tank {
  public:
  	Tank() {
      s_iCount++;
  	}
  	~Tank() {
      s_iCount--;
  	}
  	static int getCount() {
      return s_iCount;
  	}
  	static int s_iCount;
  private:
  	string m_strCode;
};
int Tank::s_iCount = 0;	// 初始化

// main.cpp
int main() {
  // 通过类的访问方法
  cout << Tank::getCount() << endl;
  cout << Tank::s_iCount << endl;
  
  // 通过对象的访问方法
  Tank tank;
  cout << tank.getCount() << endl;
  cout << tank.s_iCount << endl;
}

2.静态成员函数

3.静态使用注意事项

  • 静态数据成员必须单独初始化;
  • 静态成员函数不能调用非静态成员函数和非静态数据成员;
  • 静态数据成员只有一份,且不依赖对象而存在;
  • 静态成员函数上不允许修饰符。
posted @ 2016-11-18 14:18  青_阳  阅读(104)  评论(0编辑  收藏  举报