课程咨询 :0571-56020834 QQ:3163902815

杭州软件测试培训

杭州软件测试培训 > 达内新闻 > 达内:C++静态成员变量的特性及测试用例
  • 达内:C++静态成员变量的特性及测试用例

    发布:杭州软件测试培训      来源:51测试网      时间:2016-03-21


  •     杭州达内软件测试培训专家讲解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性能测试

最新开班日期  |  更多

国际软件测试工程师精品班

国际软件测试工程师精品班

开班日期:每月底

国际软件测试工程师提升班

国际软件测试工程师提升班

开班日期:每月底

国际软件测试工程师就业班

国际软件测试工程师就业班

开班日期:每月底

国际软件测试工程师就业班

国际软件测试工程师就业班

开班日期:每月底

  • 地址:杭州市西湖区文三路199号创业大厦4楼
  • 课程培训电话:0571-56020834 QQ:3163902815     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56