首页 > 代码库 > C++ static内容小结

C++ static内容小结

C++中static总结比较好的博客:http://blog.csdn.net/laixingjun/article/details/9139839  

                                                 http://blog.csdn.net/xiajun07061225/article/details/6955226

 

static的用法:

  有时人们希望有某一个或几个数据
  成员为所有对象所共有。这样可以实现数据共享。

#include<iostream>using namespace std;class Box{        public:                Box(int,int);                int volume();                static int height;                int width;                int length;};Box::Box(int w,int len){        width = w;        length = len;}int Box::volume(){        return (height*width*length);}int Box::height = 10;int main(){        Box a(15,20) ,b(20,30);        cout<<a.height<<endl;        cout<<b.height<<endl;        cout<<Box::height<<endl;        cout<<a.volume()<<endl;}
View Code

【1】这说明静态数据成员并不是属于对象的,而是属于
  类的,但类的对象可以引用它。

【2】静态数据成员的作用域只限于定义该类的作用
  域内(如果是在一个函数中定义类,那么其中静态
  数据成员的作用域就是此函数内)。在此作用域
  内,可以通过类名和域运算符“∷”引用静态数据成
  员,而不论类对象是否存在。

【3】静态成员函数

A:  静态成员函数的作用不是为
  了对象之间的沟通,而是为了能处理静态数据成员

B: 静态成员函数与非静态成员函数的根本区
  别是: 非静态成员函数有thisthis指针,而静态成员函
  数没有this指针。由此决定了静态成员函数不能访
  问本类中的非静态成员。