17、不一样的C++系列--静态成员
来源:互联网 发布:catia软件书籍 编辑:程序博客网 时间:2024/06/06 02:31
静态成员变量
在C++中可以定义静态成员变量
- 静态成员变量属于整个类所有
- 静态成员变量的生命期不依赖于任何对象
- 可以通过类名直接访问公有静态成员变量
- 所有对象共享类的静态成员变量
- 可以通过对象名访问公有静态成员变量
静态成员变量的特性
- 在定义时直接通过static关键字修饰
- 静态成员变量需要在类外单独分配空间
- 静态成员变量在程序内部位于全局数据区
语法规则:
- Type ClassName::VarName = value;
class Test{private: static int cCount;public: Test() { cCount++; } ~Test() { --cCount; } int getCount() { return cCount; }};
静态成员函数
- 在C++中可以定义静态成员函数
- 静态成员函数是类中特殊的成员函数
- 静态成员函数属于整个类所有
- 可以通过类名直接访问公有静态成员函数
- 可以通过对象名访问公有静态成员函数
- 静态成员函数的定义
- 直接通过static关键字修饰成员函数
#include <stdio.h>class Demo{private: int i;public: int getI(); //声明静态成员函数 static void StaticFunc(const char* s); static void StaticSetI(Demo& d, int v);};int Demo::getI(){ return i;}void Demo::StaticFunc(const char* s){ printf("StaticFunc: %s\n", s);}void Demo::StaticSetI(Demo& d, int v){ d.i = v;}int main(){ //直接通过类名来访问静态成员函数 Demo::StaticFunc("main Begin..."); Demo d; //通过对象来设置成员变量 Demo::StaticSetI(d, 10); printf("d.i = %d\n", d.getI()); Demo::StaticFunc("main End..."); return 0;}
- 静态成员函数 VS 普通成员函数
举个例子:
#include <stdio.h>class Test{private: static int cCount;public: Test() { cCount++; } ~Test() { --cCount; } static int GetCount() { return cCount; }};int Test::cCount = 0;int main(){ printf("count = %d\n", Test::GetCount()); Test t1; Test t2; printf("count = %d\n", t1.GetCount()); printf("count = %d\n", t2.GetCount()); Test* pt = new Test(); printf("count = %d\n", pt->GetCount()); delete pt; printf("count = %d\n", Test::GetCount()); return 0;}
阅读全文
0 0
- 17、不一样的C++系列--静态成员
- 【C++】类的静态成员
- C++系列之类的静态成员
- 1、不一样的C++系列--C到C++的升级
- 37、不一样的C++系列--C语言异常处理
- c语言中静态成员的使用
- 静态成员的初始化顺序(C#,java)
- 【C++】类的静态数据成员
- 【c++】类的静态成员函数
- C++:类的静态类成员
- Objective-C类的静态数据成员
- 【C++】C++类的静态成员
- [c++]关于类的静态成员
- 16、不一样的C++系列--const对象与类成员的知识点
- C++_静态成员
- C++_静态成员
- C++_静态成员
- C++【静态成员】
- Scrollview嵌套百度地图MapView导致触摸事件冲突
- Java多线程中join方法的理解
- Arrays.binarySearch() 方便记忆版
- java调用C++的方法
- ZOJ 1010
- 17、不一样的C++系列--静态成员
- 使用PullToRefreshActivity实现android下拉刷新
- Linux下的多线程编程一(系统编程)
- 人脸对齐LBF(二)
- UDP简介
- c语言基础(二)指针篇
- FTP主动模式与被动模式互相切换
- linux的单用户模式
- 常用的英语俚语