zoukankan      html  css  js  c++  java
  • 【C++ 学习笔记】 static成员:static 变量和static函数

    • static 变量:

    举例子,譬如你做一个卖西瓜的程序,里面有一个类叫做西瓜:watermelon

    class watermelon()
    {
    static int totalSell; //总的西瓜销售量
    int price; //西瓜的价格
    double weight; //西瓜的重量
    }

    其中西瓜只是针对单个西瓜的对象,譬如说有西瓜的价格,西瓜的重量等。可是如何表示一个全局的概念,如西瓜的总销售量?

    只需在这个变量上加入static即可,这样totalsell这个变量便是所有的西瓜们共有的。任何一个西瓜对象都可以对这个参数进行操作,譬如说西瓜A卖出--totalsell++; 西瓜B卖出--totalsell++。这样程序便可以将这些全局参数放置在类内,防止产生太多和类外成员打交道的操作。

    • static 函数:

    和static对象类似,static函数也可以被类共享。譬如上面的西瓜例子,我们可以加入这样一条static的函数。

    static sellwatermelon()
    {
    totalSell++;
    }

    需要注意的是,每个static数据成员始于类关联的对象,并不与该类的对象相关联。因此,static的函数没有this指针。static函数中如果要调用非静态参数需要使用类的指针。

    ///

    Primer上对static成员的总结

    优点总结:

    1. static成员的名字是在类的作用域中,因此可以避免与其他类的成员或全局对象名字冲突
    2. 可以实施封装。static成员可以是私有的成员,而全局对象不可以
    3. 通过阅读程序容易看出static成员是与特定类关联的。这种可见性可清晰的显示程序员的意图。
  • 相关阅读:
    c#简单操作MongoDB_2.4
    将不确定变为确定~老赵写的CodeTimer是代码性能测试的利器
    利用双缓冲队列来减少锁的竞争
    移动端地区选择控件mobile-select-area
    服务器CPU居高不下--解决问题历程
    .NET常用开发工具整理
    免费的精品: Productivity Power Tools 动画演示
    二维码编码与解码类库ThoughtWorks.QRCode
    C#异步编程基础入门总结
    优盘版Kali
  • 原文地址:https://www.cnblogs.com/xiaoka/p/2286854.html
Copyright © 2011-2022 走看看