关于c++static关键字和extern关键字
来源:互联网 发布:排序算法适用情况 比较 编辑:程序博客网 时间:2024/05/12 04:10
1.static用于变量
当我们将变量声明为static类型,如:static int n=0,这就告诉编译器记住第一次的声明,以后再重复使用时不再声明,相当于在文件内定义一个全局变量下面给出一个例子:
在一个函数内:
void function()
{
static int i=0;
cout<<i<<endl;
i++;
}
int main()
{
function();
function();
return 0;
}
output:
0
1
2.static用于函数
当我们在函数前加上static,这就告诉编译器这个函数是静态编译的,也就是说你可以在其他文件中定义相同的函数而编译器不会编译报错。
如:
int file1.cpp
static void function();
int file2.cpp
void function();
当编译链接时不会报错的。(相当于将两个函数取不同的名字,但函数体相同)
3.static用于类内变量
当将类内的变量声明为static,这就告诉编译器该变量属于类,而不属于某个特定的对象,相当于所有对象都共享这个变量,例如:
class CButton
{
static int m_X;
public:
CButton():m_X++{ cout<<m_X<<endl;}
~CButton():m_X--{cout<<m_X<<endl;}
};
CButton::m_X=0;
intput:
int main()
{
CButton *mybuttonApp=new CButton;
delete mybuttonApp;
return 0;
}
output:
1
0
4.static 用于类内函数
当将类内的函数声明为static,这就告诉编译器这个函数在类没有产生对象时就可以使用,并且这个函数只能调用静态变量
5.extern用于变量
当变量声明为extern时,这就告诉编译器这个变量用的是外部的某个变量,并且已经在外部文件中被定义,一般使用在跨文件使用全局变量,例如
在文件file2中用到文件file1中的变量:
//in file1.cpp
int gn_X=10;
//in file2.cpp
extern int gn_X; //这个gn_X不能赋值,否则出错
这样程序中就可以像在一个文件中使用全局变量一样使用这个gn_X了。
- 关于c++static关键字和extern关键字
- C 关键字extern、static
- 关于关键字static和extern和const
- extern和static关键字
- 关键字extern和static
- static和extern关键字
- c语言中的static和extern关键字
- C/C++中的static和extern关键字
- c语言的static和extern关键字
- c语言中的static和extern关键字
- C/C++中Static和extern关键字
- c语言中的static和extern关键字
- c语言中static和extern关键字
- C语言(五)extern和static关键字
- C/C++关键字中的extern 和 static
- c语言--static和extern关键字
- C 一一 static和extern关键字详解
- C语------typedef、static关键字和extern关键字
- C#中 public、private、protected、internal 的区别 (几乎C#面试必考题)
- 利用函数来画任意图形
- C++虚继承
- EditText输入事件截获与监听
- 年轻人必学!保持生活斗志的20种经典方法
- 关于c++static关键字和extern关键字
- 黑马程序员_网络编程(UDP协议与TCP协议)
- Vector二维数组实现
- struts2中数组或List的使用
- 基础入门博客一览(无法直接转载)
- NetBSD 6.0.1 发布,开源UNIX操作系统
- Billboard+线段树
- HDU 1728 解题报告 ---- 逃离迷宫
- 关于LINUX的文件锁的一些心得