Part5 数据的共享与保护 5.3类的静态成员

静态数据成员:
  1 用关键字static声明
  2 为该类的所有对象共享,静态数据成员具有静态生存期。
  3 必须在类外定义和初始化,用(::)来指明所属的类。

//5-4具有静态数据成员的Point类
#include<iostream>
using namespace std;
class Point{
public:
    Point(int x = 0, int y = 0):x(x), y(y){
        count++;//在构造函数中对count累加,所有对象维护共同一个count
    }
    Point(Point &p){
        x = p.x;
        y = p.y;
        count++;
    }
    ~Point(){count--;}
    int getX(){return x;}
    int getY(){return y;}
    void showCount(){
        cout << " Object count = " << count << endl;
    }
private:
    int x,y;
    static int count;//静态数据成员声明,用于记录点的个数
};
int Point::count = 0;
int main(){
    Point a(4,5);
    cout << "Point A: " << a.getX() << ", " << a.getY();
    a.showCount();

    Point b(a);
    cout << "Point B: " << b.getX() << ", " << b.getY();
    b.showCount();
    return 0;
}

静态函数成员:
  1 类外代码可以使用类名和作用域操作符来调用静态成员函数。
  2 静态成员函数主要用于处理该类的静态数据成员,可以直接调用静态成员函数。
  3 如果访问非静态成员,要通过对象来访问。

//5-5具有静态数据、函数成员的 Point类
#include<iostream>
using namespace std;
class Point{
public:
    Point(int x = 0,int y = 0):x(x),y(y){count++;}
    Point(Point &p){
        x = p.x;
        y = p.y;
        count++;
    }
    ~Point(){count--;}
    int getX(){return x;}
    int getY(){return y;}
    static void showCount(){
        cout << " Object count = " << count << endl;
    }
private:
    int x,y;
    static int count;
};
int Point::count = 0;
int main(){
    Point a(4,5);
    cout << "Point A: " << a.getX() << ", " << a.getY();
    Point::showCount();

    Point b(a);
    cout << "Point B: " << b.getX() << ", " << b.getY();
    Point::showCount();
    a.showCount();//对象也能访问静态函数
    b.showCount();
    return 0;
}
时间: 2024-08-13 15:29:52

Part5 数据的共享与保护 5.3类的静态成员的相关文章

我的C++笔记(数据的共享与保护)

*数据的共享与保护: * 1.作用域: * 作用域是一个标识符在程序正文中有效的区域.C++中标识符的作用域有函数原型作用域.局部作用域(块作用域).类作用域和命名空间作用域. * (1).函数原型作用域: * 函数原型作用域是C++中最小的作用域,在函数原型中一定要包含形参的类型说明.在函数原型声明时形式参数的作用范围就是函数原型的作用域.如:double area(double radius);标识符radius的作用范围就在函数area形参列表的括号之间. * 由于在函数原型的形参列表中起

2.数据的共享与保护

1.作用域 - 函数原型作用域:形参范围 - 局部作用域 - 类作用域 x.m.x->m.x::m - 命名空间作用域:namespace name{}.name::person p.using namespace name;具有命名空间作用域的变量也叫全局变量 2.可见性规则: - 标识符要声明在前,引用在后 - 在同一作用域中,不能声明同名标识符 - 在没有互相包含关系的不同作用域声明同名标识符互不影响 - 若在包含关系的作用域中声明同名标识符,则外层在内层不可见 3.对象生存期 - 静态生

第5章 数据的共享与保护

主要介绍标识符的作用域.可见性和生存周期的概念,以及类成员的共享与保护问题. 5.1 标识符的作用域与可见性 5.1.1 作用域 作用域是一个标识符在程序正文中有效的区域. 1.函数原型作用域: 在函数原型声明时形参的作用范围就是函数原型作用域,可以省略形参标识符.但考虑程序的可读性,通常还是要在函数原型声明时给出形参标识符. 2.局部作用域: 函数形参列表中形参的作用域,从形参列表中的声明处开始,到整个函数体结束之处为止.函数体内声明的变量,其作用域从声明处开始,一直到声明所在的块结束的 大括

数据的共享与保护

QQ:1783478816根据我多年总结出来的经验,玩好一个彩种只需要学会以下四重奏:心得 分配 技巧 运用 第一:心态问题,如果你是容易上脑请看第二点例子,如果你不懂合理分配请看下面例子.心态请看好下面例子几点: 1.沉迷久du,必输(塞车每天179期,每一期走势都在改变,也许这会这个走势刚好带你赢了点钱,但不代表能够一直赢下去,也许下一秒走势就变了,盈利瞬间化为乌有) 2.心态爆炸,容易上头,必输(心态把控不好,赢了贪得无厌想要接着赢下去,输了不甘服输一定要博个翻本,殊不知越陷越深,直至万丈

数据的备份和保护

柏科数据BCM是采用业界创新框架,集软硬件和存储一体化设计,基于磁盘设计的单一芯片级控制器实现,全面整合操作系统.应用数据.数据库数据的备份和保护于一体设备,内建(Build-In)数据镜像副本.智能快照副本和持续写入保护技术,极大提高了数据保护和业务恢复的效率.通过BCM卓越的文件/数据库/操作系统的实时保护与瞬间恢复:可随时测试.验证.演练的本地高效保护功能整合.最大限度地保护数据的实时性.完整性和一致性,既极大的提升信息化保护水平,又降低企业信息化业务在各种意外故障发生时造成的数据丢失损失

李彦宏:数据技术共享与“圈子联合文化”

[一周要闻]李彦宏:数据的价值在于与各个行业进行结合--数据技术共享与"圈子联合文化" 一年一度的中国(深圳)IT领袖峰会于3月26日至27日在深圳五洲宾馆举行,马云.李彦宏.马化腾企业领袖和投资家共襄盛会.同样备受瞩目的,还有中国圈子联合会创始人李帅,与诸多知名企业家共同探讨中国IT行业未来的创新与发展. 峰会中,百度董事长兼CEO李彦宏从创新谈到做企业的危机感,"如果你天天觉得公司会死,公司反而会越做越大."新兴企业之多,竞争之激烈上述观点,让许多企业家都心有戚

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(33)-数据验证共享

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(33)-数据验证共享 注:本节阅读需要有MVC 自定义验证的基础,否则比较吃力 一直以来表单的验证都是不可或缺的,微软的东西还是做得比较人性化的,从webform到MVC,都做到了双向验证 单单的用js实现的前端验证是极其不安全的,所以本次我们来看看MVC上的自带的注解验证,自定义验证 同样的MVC提供了一系列内置的数据验证注解 不为空验证  [Required(ErrorMessage = "不能为空

云桌面用户数据放到共享存储中是比较常见的方式

云桌面,是把操作系统.应用程序以及用户数据都存放到后端的数据中心.云桌面利用虚拟化技术将PC桌面统一集中存放,并通过网络交付桌面到用户,有效提升部署效率,简化桌面运维工作,解决IT供需矛盾和企业信息安全问题. 云桌面中用户数据主要包括用户的个人存档文件以及部分应用程序的配置及下载文件.既然涉及到存档及下载文件,其存放位置就成为一大问题,对于系统存储性能将产生重大影响.通常,个人数据可以在共享存储或者本地,各自有其优劣势: 把用户数据放到共享存储中是比较常见的方式,通过策略让用户登录云桌面后自动挂

利用在线工具根据JSon数据自动生成对应的Java实体类

如果你希望根据JSon数据自动生成对应的Java实体类,并且希望能进行变量的重命名,那么“JSON To Java”一定适合你.(下面的地址需要FQ) https://jsontojava.appspot.com/ 简单快速有效,适合追求效率的你.