C/C++中的static变量和static函数
2011-10-24 20:56
316 查看
一. C/C++中的共同特点:
1.static变量:
1)static局部变量
2)static全局变量:
共同点:
A.生存期存在于整个源程序,也即:只定义一次,直到程序结束后才释放;
B.当我们没有对他们做初始化时,他们可以被系统自动初始化,一般为0;
C.都只能在定义他们的源文件中使用,不能被其他源文件使用;
不同点:作用域不同,前者:只能在函数体或语句体中使用
后者:仅在定义他的源文件中使用
注:static全局变量与普通全局变量的区别:
全局变量未加声明的话,默认为非static的,它可以被其他源文件所引用(引用方式为:extern var_type var_name)
static全局变量不能被其它源文件引用;
2.static函数:
一般程序中有两种类型的函数:内部函数和外部函数
内部函数也即static函数,外部函数也即加上extern声明的(未加任何声明的也默认为外部函数)
区别是:前者只能在定义它的源文件中被调用,后者可以在其它源文件中被引用(引用方式同普通全局变量的调用方式:extern ret_type func_name(para_type1, para_type2, ............);
二. C++中的延伸
static数据成员和static成员函数的异同点:
共同点:
1)两者都只和类相关联,他们独立于该类的任何对象而存在;
2)static关键字只出现在类定义体中的声明处,在类外对他们进行定义时不用再加上static;
不同点:
1)static数据成员只能在类定义体外部定义,此外它不能通过类构造函数进行初始化,只能在定义时初始化;
例外:对于整型const static数据成员,只要其初始化式是常量表达式就可以在类定义中初始化;
2)static成员函数可以在类定义体内或外定义;
此外,static成员函数没有this指针,也不能被指定为const,因为:this指针是用来指向调用该函数的对象的,而static成员函数仅与类相关联,何来调用它的对象呢?调用static成员函数需要加上类作用域符,以指明它是哪个类的。同样地,将成员函数声明为const型的就是承诺不会修改该函数所属的对象,而static成员函数根本就和对象没有关系。
1.static变量:
1)static局部变量
2)static全局变量:
共同点:
A.生存期存在于整个源程序,也即:只定义一次,直到程序结束后才释放;
B.当我们没有对他们做初始化时,他们可以被系统自动初始化,一般为0;
C.都只能在定义他们的源文件中使用,不能被其他源文件使用;
不同点:作用域不同,前者:只能在函数体或语句体中使用
后者:仅在定义他的源文件中使用
注:static全局变量与普通全局变量的区别:
全局变量未加声明的话,默认为非static的,它可以被其他源文件所引用(引用方式为:extern var_type var_name)
static全局变量不能被其它源文件引用;
2.static函数:
一般程序中有两种类型的函数:内部函数和外部函数
内部函数也即static函数,外部函数也即加上extern声明的(未加任何声明的也默认为外部函数)
区别是:前者只能在定义它的源文件中被调用,后者可以在其它源文件中被引用(引用方式同普通全局变量的调用方式:extern ret_type func_name(para_type1, para_type2, ............);
二. C++中的延伸
static数据成员和static成员函数的异同点:
共同点:
1)两者都只和类相关联,他们独立于该类的任何对象而存在;
2)static关键字只出现在类定义体中的声明处,在类外对他们进行定义时不用再加上static;
不同点:
1)static数据成员只能在类定义体外部定义,此外它不能通过类构造函数进行初始化,只能在定义时初始化;
例外:对于整型const static数据成员,只要其初始化式是常量表达式就可以在类定义中初始化;
2)static成员函数可以在类定义体内或外定义;
此外,static成员函数没有this指针,也不能被指定为const,因为:this指针是用来指向调用该函数的对象的,而static成员函数仅与类相关联,何来调用它的对象呢?调用static成员函数需要加上类作用域符,以指明它是哪个类的。同样地,将成员函数声明为const型的就是承诺不会修改该函数所属的对象,而static成员函数根本就和对象没有关系。
相关文章推荐
- 详解C/C++语言中Static 变量 或者 static函数的作用
- C/C++中static变量和static函数的用法
- 【C++ 学习笔记】 static成员:static 变量和static函数
- C/C++中static变量和static函数的用法
- C/C++中static变量和static函数的用法
- C/C++中static变量和static函数的用法
- C/C++---static函数,static成员函数,static变量,static成员变量 再来理一理
- static全局变量与普通的全局变量、static局部变量和普通局部变量、static函数与普通函数的区别
- static变量、static函数、变量
- static全局变量与普通的全局变量的区别/static局部变量和普通局部变量的区别/static函数与普通函数的区别
- static变量和static函数的用法摘抄
- C++ 类的const常量,Static变量和…
- C语言中的 static变量、static函数
- c++ 类与函数中static变量初始化问题(转)
- C++的static关键字及变量存储位置总结
- C++的static关键字,变量存储位置(一)
- static变量和static函数的用法摘抄
- C语言中的 static变量、static函数
- c++中关键字static在普通变量及函数详解及实例运行答案
- static变量在Main函数之前执行分析(C++)