100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C++ 静态成员变量与静态成员函数

C++ 静态成员变量与静态成员函数

时间:2021-05-23 06:34:42

相关推荐

C++ 静态成员变量与静态成员函数

一、静态成员变量

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; //访问静态成员变量方法1cout<<"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)疑难问题:静态成员函数中,不能使用普通变量。

//静态成员变量属于整个类的,分不清楚,是那个具体对象的属性。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。