C++ 静态成员变量与静态成员函数
来源:互联网 发布:linux crontab 日志 编辑:程序博客网 时间:2024/06/05 14:07
一、静态成员变量
1)定义静态成员变量
关键字 static 可以用于说明一个类的成员,静态成员提供了一个同类对象的共享机制
把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员
静态成员局部于类,它不是对象成员
例如:#include<iostream>using namespace std;class counter{ static int num ; //声明与定义静态数据成员 public : void setnum ( int i ) { num = i ; } //成员函数访问静态数据成员 void shownum() { cout << num << '\t' ; }} ;int counter :: num = 0 ;//声明与定义静态数据成员void main (){ counter a , b ; a.shownum() ; //调用成员函数访问私有静态数据成员 b.shownum() ; a.setnum(10) ; a.shownum() ; b.shownum() ;}
2)使用静态成员变量
// 例 使用公有静态数据成员 #include<iostream.h>class counter{ public : counter (int a) { mem = a; } int mem; //公有数据成员 static int Smem ; //公有静态数据成员} ;int counter :: Smem = 1 ; //初始值为1 void main(){ counter c(5); int i ; for( i = 0 ; i < 5 ; i ++ ) { counter::Smem += i ; cout << counter::Smem << '\t' ; //访问静态成员变量方法2 } cout<<endl; cout<<"c.Smem = "<<c.Smem<<endl; //访问静态成员变量方法1 cout<<"c.mem = "<<c.mem<<endl;}
二、静态成员函数
1)概念
静态成员函数数冠以关键字static
静态成员函数提供不依赖于类数据结构的共同操作,它没有this指针
在类外调用静态成员函数用 “类名 :: ”作限定词,或通过对象调用
2)案例
#include <iostream>using namespace std;class X{int DataMem;public: static void StaFun(int i,X *p);};void X::StaFun(int i,X *p){ p->DataMem=i;}void g(){ X x; X::StaFun(1,&x); x.StaFun(1,&x);}
3)疑难问题:静态成员函数中,不能使用普通变量。
//静态成员变量属于整个类的,分不清楚,是那个具体对象的属性。
阅读全文
0 0
- 静态成员变量与静态成员函数
- 静态成员变量 与 静态成员函数
- 静态成员变量与静态成员函数
- 静态成员变量与静态成员函数
- 静态变量与静态成员函数
- 静态成员变量成员函数
- C/C++静态成员变量和静态成员函数
- c++:静态成员变量和静态成员函数使用问题
- C++ 静态成员变量与静态成员函数
- c++中的静态成员变量与静态成员函数
- C++ 中的静态成员函数与静态成员变量
- C++中静态成员变量与静态成员函数
- C++ 静态成员变量与静态成员函数
- c++--静态成员变量
- 静态成员变量和静态成员函数
- 静态成员函数和静态成员变量
- 静态成员变量 和 静态成员函数
- 静态成员变量和静态成员函数
- TCP编程
- c++ 智能指针用法详解
- mybatis中#{}【占位符】和${}【字符串】拼接的区别
- 【Java】Java基础知识之HashMap源码分析(Java8)
- 解决主机名问题
- C++ 静态成员变量与静态成员函数
- edittext的requestFocus作用
- 数据结构实验之二叉树八:(中序后序)求二叉树的深度
- init进程与zygote进程
- php安装扩展的几种方法
- Oracle 学习(五)---分页查询
- css轮廓设置
- POI操作word 换行
- HTC Viive实现拧螺丝效果