杭州软件测试培训
达内杭州软件测试培训中心

18357109557

热门课程

达内:C++静态成员变量的特性及测试用例

  • 时间:2016-03-21
  • 发布:杭州美工培训
  • 来源:51测试网


    杭州达内软件测试培训专家讲解C++静态成员变量的特性,并附上测试用例。

    静态成员变量存放于数据段,在编译时产生,故有以下特性:

    静态成员变量实际为类域中的全局变量,其初始化也应与全局变量一样,不能再头文件里初始化,应与全局变量初始化的方式一样,初始化时,静态成员变量不收访问限定符限定


Test.cpp:
class A
{
static int _num;
};
int A::_num = 0;//初始化成功


    静态成员变量被类内所有成员变量共享,也被派生类所有成员变量共享


class B :public A
{
};
int main()
{
A a;
a._num++;
B b;
b._num++;
cout << "b._num:" << b._num << endl;
cout << "a._num:" << a._num << endl;
return 0;
}


    静态成员变量具有常量性,可以成为成员类的可选参数,普通成员变量不具有常量性,所以不能作为成员函数的可选参数


class B :public A
{
public:
void fun(int a = _num)//正确
{
}
void fun1(int a = num)//报错
{
}
private:
int num;
};


    静态成员变量可以声明为所属类类型,铺同成员变量不可以声明为所属类类型,只能声明为所属类类型的引用与指针(节点就是这么来的) 


class B :public A
{
public:
void fun(int a = _num)//正确
{
}
void fun1(int a = num)//报错
{
}
private:
int num;
static B _bclass;//正确
B _b1class;//错误
B* _bclassptr;//正确,为一指针
B &_b2class;//错误,为一引用
};


    由于静态成员变量定义不在类体内,所以静态数据成员的值在const成员函数中可以被合法的改变。 


class A
{
public:
static int _num;
};
int A::_num = 0;//初始化成功
class B :public A
{
public:
void fun()const
{
_num++;//正确,const函数可以改变静态成员变量
}
private:
int num;
};



原文链接:http://www.51testing.com/html/50/n-3707750.html
上一篇:2016年的自动化测试15大趋势(下)
下一篇:达内简介Ceph性能测试

WEB安全探测框架——Recon-ng

达内:测试用例中的电子邮箱文本框

达内介绍iOS功能性UI测试框架EarlGrey

达内:python的web应用开发与测试

选择城市和中心
贵州省

广西省

海南省