当前位置 博文首页 > m0_53328774的博客:C++病历:Fields&Local variables

    m0_53328774的博客:C++病历:Fields&Local variables

    作者:[db:作者] 时间:2021-07-12 10:16

    通过前面的extern学习了全局变量,现在来了解一下本地变量(local variable)与成员变量(fields)
    最大的区别便在于作用域的不同(field的作用域即为类的作用域)
    local variable
    是在函数内部定义的变量,在离开函数之后变量将不存在
    field
    同c语言中int i=1一般,定义在函数之外便可以使用(其实就是c里面传统的东西)
    成员变量只与对象有关
    question:field到底在哪里?
    例:
    头文件中

    #ifndef _A_H_
    #define _A_H_
    class A{
    private: 
     int i;
    public:
     void f();
    };
    #endif
    

    .cpp中

    #include"a.h"
    void A::f(){
     i=10;//这是class的field,在class中都可以使用
     int j=10;//j是本地变量,只对这个函数中有效
    }
    //那么i到底在什么时候有效呢?
    int main{
     A a;//当你有了这个对象,你才能有这个i
     a.f();//调用在A头文件中的f函数,A的i其实就在这里了
     return 0;
    }//以上是用vi做的,可能会引起不适
    

    attention:在class中所有的东西都是declaration,而不是definition,所以class A内的所有东西都是声明//就如同extern int a只是声明,而在后面要int a才能使用。所以我们可以在class中这样解释:我们没有说i在这里,我们只是说有这样一个i!

    cs