05_类与对象(二)

一:静态成员变量成员函数
思考:每个变量,拥有属性。有没有一些属性,归所有对象拥有?
(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)使用静态成员变量
// 例 5-14 使用公有静态数据成员
#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;
}

(2)

猜你喜欢

转载自www.cnblogs.com/eokey/p/12034910.html