一、类静态数据成员
静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这里主要讨论用类的静态成员来实现对象间的数据的共享。
静态数据成员的使用方法和注意事项如下:
1、静态数据成员在定义或说明时前面加关键字static。
2、静态成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式如下:
<数据类型><类名>::<静态数据成员名>=<值>
3、静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化。
4、引用静态数据成员时,采用如下格式:
<类名>::<静态成员名>
#include <stdio.h> class A { public: static int count;//定义一个静态成员用来存放类对象的个数 void setcount(int k); A() { count++; } }; int A::count =0; //设置静态成员的初值 void A:: setcount(int k) //设置计数变量 { this->count=k; } void main() { A a; A b; printf("实例化次数%d\n",A::count); a.setcount(888);//通过这一句可以设置count数值,a与b共享同一个count; printf("a的count为:%d\n",a.count);//对于静态的来讲, //这里a.count与A::count与A.count可以互换 printf("b的count为:%d",b.count); getchar(); }
二、类静态成员函数
静态成员函数内不能使用非静态类成员数据。
类成员函数可以独立使用。(不必通过对象调用成员函数,可以使用类名+作用域解析符调用静态成 员函数。如Tdate::staticFun();)
最好把成员函数的实现放在.cpp里边,以防止重复定义。
本文出自 “明日清晨” 博客,转载请与作者联系!
原文:http://yhj51blog.blog.51cto.com/6492000/1675642