当前位置 博文首页 > m0_53328774的博客:C++病历:Fields&Local variables
通过前面的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