2.0 C++远征:静态

静态

[TOC]

二、静态

关键字: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.静态使用注意事项

  • 静态数据成员必须单独初始化;
  • 静态成员函数不能调用非静态成员函数和非静态数据成员;
  • 静态数据成员只有一份,且不依赖对象而存在;
  • 静态成员函数上不允许修饰符。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,544评论 1 51
  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 2,866评论 0 3
  • 1. 让自己习惯C++ 条款01:视C++为一个语言联邦 为了更好的理解C++,我们将C++分解为四个主要次语言:...
    Mr希灵阅读 2,871评论 0 13
  • const 引用 const 引用是指向 const 对象的引用:const int ival = 1024;co...
    rogerwu1228阅读 662评论 0 1
  • 1.首先将gif图片添加到项目中。2.Source Control ->commit ->填写注释-> push完...
    flowerflower阅读 533评论 0 1