静态数据成员与静态成员函数
2015-12-29 18:28
204 查看
静态属性不是类中每个对象拥有的,而是共有的。由于静态成员逃离了对象而存在的性质,所以该实体应该在所有对象产生之前产生,更适合的时机是在程序启动的时候做初始化。初始化时候不可重复上static,但是要加上类名空间。该实体在程序中的唯一性,要求他不可以和类的定义放在头文件中,但是它确实是类的成员,所以放在类实现中最合适。如下:
//--------------------Student.h ---类定义的文件
class Student{
private:
static int num;
}
//-------------------Student.cpp---内实现的文件
#include"Student.h"
Student::number=0;
由于静态数据成员不属于任何一个对象,为了安全起见将静态数据成员定义为私有的,于是如何去访问它呢?同样的可以定义静态成员函数来访问它,用静态成员函数去访问静态数据是最合适不过的,在类中声明静态成员函数,要在成员函数前加上static关键字,可以用对象来调用他,也可以用雷明加域操作符来调用。静态成员函数实现部位应该和成员函数位置相同,在类外部实现时要免去static,但是域操作符是必须的。
//--------------------Student.h ---类定义的文件
class Student{
private:
static int num;
public:
static void Print();
}
//-------------------Student.cpp---内实现的文件
#include"Student.h"
Student::number=0;
void Student::Print(){
cout<<num++<<endl;
}
//--------------------Student.h ---类定义的文件
class Student{
private:
static int num;
}
//-------------------Student.cpp---内实现的文件
#include"Student.h"
Student::number=0;
由于静态数据成员不属于任何一个对象,为了安全起见将静态数据成员定义为私有的,于是如何去访问它呢?同样的可以定义静态成员函数来访问它,用静态成员函数去访问静态数据是最合适不过的,在类中声明静态成员函数,要在成员函数前加上static关键字,可以用对象来调用他,也可以用雷明加域操作符来调用。静态成员函数实现部位应该和成员函数位置相同,在类外部实现时要免去static,但是域操作符是必须的。
//--------------------Student.h ---类定义的文件
class Student{
private:
static int num;
public:
static void Print();
}
//-------------------Student.cpp---内实现的文件
#include"Student.h"
Student::number=0;
void Student::Print(){
cout<<num++<<endl;
}
相关文章推荐
- ZOJ 3329 One Person Game (概率DP)
- Java SE | SSM 日期类型的转换 由String 转换为Date
- IOS 程序执行
- java中的反射
- jQuery:常用方法一览
- 001: Hello World
- Android自定义组合控件
- Revit二次开发之“族”操作
- iOS解决Cell的分割线宽度不满屏的方法
- 虚拟机CentOS6.3环境下配置ip地址(慕课学习笔记)
- JS面向对象的程序设计
- 【斜率DP】BZOJ 1010:玩具装箱
- spring mvc 数据绑定报错 Failed to convert property value of type 'java.lang.String' to required type 'int'
- Scroller入门
- js实现,同一页面多个倒计时
- 转《本文为腾讯Bugly原创文章 ---全站 HTTPS 来了》
- android适配的努力
- ie7 height 100%无效解决办法
- 感想之终结篇
- [android问题]小记碰到的问题