类的成员变量和局部变量在作用域和生命周期上有什么区别?
vc中什么时候需要定义成员变量,什么时候需要定义局部变量?vc把我弄得晕头转向.大家帮忙啊!

解决方案 »

  1.   

    1.类的成员变量在类的对象化时产生,作用域一直到该类对象析构时消失;
    2.局部变量为只有在该作用域中存在,例如在类函数中有一个循环体,在循环体中声明一变量,那么该变量即为局部变量,作用域为知道循环结束或break;
      

  2.   

    局部变量的生存周期在其“局部”,也就是前后两个大括号之间({}),如果不属于任何大括号内部的就是全局变量,如果是静态(static修饰)局部变量,其生存周期是和全局一样的,但是只在函数内部可见(可访问),非静态的局部变量在进入其局部作用域时创建,在离开其局部作用域时销毁;成员变量分静态的(static)和非静态的,静态的生存周期是全局的,和全局变量一样;非静态的生存周期和该类的对象一致,对象创建的时候其成员变量跟着创建,对象销毁的时候其成员变量跟着销毁。
      

  3.   

    大多情况下,你也可以把成员变量当成C中的全局变量看待,只不过这个成员变量只针对这个类里的所有函数才能够调用.成员变量一般都要定义成保护,对这个变量进行操作C++的规范是用公有的成员函数
    prtected:
        type m_data;//type是变量相关类型public:
    type GetData();
    {
        return m_data;
    }
    void SetData(type data );
    {
        this->m_data = data;
    }
    这样要比较C中的全局变量安全.