现在的位置: 首页 > 综合 > 正文

7.C++类static成员

2013年10月17日 ⁄ 综合 ⁄ 共 805字 ⁄ 字号 评论关闭
 
.类static成员    (前言,定义,基类与派生类,设计指导)
1.前言
类的static成员不属于类的对象成员,也没有this指针,类生成N个对象,类的static也只会分配一个对象
引入static主要是为了对类访问次数进行计数或者其它功能实现
static成员的优点:
.它在类的作用域中,从而避免与其它全局变量和常量名字冲突
.方便类实行封装
.能明确表示类设计的意图
 
2.定义
2.1 定义格式:
static <数据成员,者函数,引用,数组,类>;
 
2.2 static成员的初始化
它直接在类中进行初如化,而不能用类构造函数来初始化,如
class demo{
...
static double pi=3.1415926;
};
 
3.基类与派生类
基类中的static能够在派生类继承,但是整个继承类树中,只有基类有一个static对象,
派生类有也只能有一个static对象,它也可以访问基类的static对象,
权限和继承中的public,private,protected限制一样
代码举例
//基类base
struct base{
static void static_m();
};
//派生类derived
struct derived : base{
void f(const derived&);
};
 
派生类可以访问基类型static的方法有:
void f(const derived& obj){
base::static_m(); //直接调用base的static成员函数
derived::static_m();     //直接调用derived的static成员函数
obj.static_m();           //直接调用derived的static成员函数
static_m();         //直接调用derived的static成员函数
}
 
4.设计指导
如要对类本身进行相关计数和其它分析,就直接设计类的static成员和static函数

 

抱歉!评论已关闭.