Chinaunix首页 | 论坛 | 博客
  • 博客访问: 144156
  • 博文数量: 66
  • 博客积分: 1571
  • 博客等级: 上尉
  • 技术积分: 715
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-24 22:55
文章分类

全部博文(66)

文章存档

2012年(66)

我的朋友

分类: C/C++

2012-08-31 13:51:58

static 数据成员独立于该类的任意对象而存在

1、使用static类的优点:

(1)避免与其他类的成员或者全局变量冲突

(2)可以封装

(3)阅读性好

2、定义static成员比较简单,这里略过

3、使用static成员和普通成员没什么区别,略过

4、static成员变量的初始化

   static数据成员必须在类定义题的外部定义(正好一次)。不像普通数据成员,static成员不是通过类的构造函数初始化的,而是应该在定义时初始化。在类定义体外部引用类的static成员时,必须指定成员是在哪个类中定义的。static关键字只能用于类定义体内部的声明中,定义时不能标示为static。

class A{
 private:
      static int m;
      static void display(); 
// 声明
    };
int A::m=0;             // 定义
void A::display(){
        cout<<"m ="<       }
int main(){
   A::display();  // 通过作用域操作符::调用
}

5、const static数据成员

   只要初始化式是一个常量表达式,整形const static数据成员就可以再类的定义体中进行初始化

  class Count{
     public:
          static double rate(){return interest_rate;}
          static void rate(double);
   private:
         static const int period=30;
         double daily_tbl[period];
         };

    const static 数据成员在类的定义体中初始化时,该数据成员仍必须在类的定义体之外进行定义

    const int Count::period;

6、static成员不是类对象的组成部分

    static数据成员的类型可以是该成员所属的类类型。非static成员被限定声明为其自身类对象的指针或引用

   class Bar{
 public:
   //
    private:
      static Bar mem1; //ok
      Bar *mem2;//ok
      Bar &mem3;//ok
      Bar mem4;//error 不能脱离类的对象而存在,不像static与对象无关
}

阅读(1817) | 评论(0) | 转发(0) |
0

上一篇:Spring 学习过程

下一篇:求一个zigzag数组

给主人留下些什么吧!~~