设为首页 加入收藏

TOP

static 注意事项
2017-07-20 10:22:49 】 浏览:3942
Tags:static 注意事项

static 关键字在C/C++ 中的使用


C/C++ 中共有的静态操作

从 auto 入手了解缺省状态下声明的变量

总的来说auto 和 static 等关键字说明的是变量的生存期,而char,int 等说明的是变量的位置以及解释方法。auto 的含义就是由程序自动控制变量的生存周期,通常指的是变量在进入其作用域的时候被分配,离开的时候被释放。相对的,static 的含义是:变量在程序初始化时分配,直到程序退出的时候才被释放。

只在cpp 内有效的全局变量
static int g_value = 0;

这个变量的含义是在该cpp 内有效,但是其它的cpp 文件不能访问这个变量,如果有两个cpp 文件声明了同名的全局静态变量,实际上是两个独立的变量。
如果在一个头文件中声明:

static int g_value = 0;

每个包含该头文件的cpp 都创建一个全局变量,但它们都是独立的。

如何声明所有cpp 可共享的全局变量,在头文件里声明为:
extern int g_value;// 不可以初始化值

然后在其中任何一个包含该头文件的cpp 中初始化(依次)就好。

C++ 类中静态的概念及使用

只在cpp 内有效的全局函数
static void func();

函数的实现不需要static 修饰,那么这个函数只在本cpp 内使用,不会同其它cpp 中的同名函数起冲突;不可以在头文件中声明static 的全局函数,不在cpp内声明非static 的全局函数,如果要在多个cpp 中重复使用该函数,就把它的声明放到头文件中,否则在cpp 内部声明需要加上static 修饰。

C++ 类中静态的概念:此变量/函数是属于整个类的,在程序运行的开始就已经存在,因此从逻辑上,具体对象可以使用类共有的成员函数、变量。属于类的函数、变量不能引用属于特定对象的函数、变量。

C++ 类中静态的使用规则:
1. 通过类名可以调用静态成员函数和但不可调用非静态成员函数
2. 通过类的对象可以调用静态成员函数和非静态成员函数
3. 在类的静态成员函数中使用类的非静态成员函数是非法的,但是反过来可以。
4. 使用的类的静态成员变量之前必须进行初始化,否则会在链接的时候出错。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++之在资源管理类中小心copying.. 下一篇C++编程开发基础知识学习

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目