第十四天:关键字static(静态),它保证了局部变量在块结束时不被破坏。 static放在int,float等数据类型标识符前,也可以放在自定义的数据类型名前。static也称延长生存。和全局变量的静态生存期对应的是局部变量缺省的动态生存期。 全局变量是静态的,不可能被定义为动态。全局变量自它的定义之处开始一直到源码结束都有效。若在全局变量的前面加上关键字static,则表示该全局变量拥有文件作用域。 与全局变量相仿,在函数前冠以关键字static可以限制该函数的可见性,使得其余与这个文件相连的文件无法使用它。如果别文件使用了同名的不会发生冲突。 如果希望另一个源文件在连接完后调用文件中的非静态函数,必须在所有调用此函数的文件中说明原型,并冠以关键字extren. 非静态的全局变量和函数具有外部连接性,也就是说现行源文件之外的代码也可以使用这些没有用static定义的全局变量和函数,静态全局变量和函数具有内部连接性,只有现行文件可以使用。 执行程序回到块中希望保持其变量的值,使用static定义其局部变量。 VC++为每个类仅保留一套成员函数,每个对象都有其所属类的成员函数的函数指针。 静态数据成员通常用来记录已创建对象的个数,例如,构造函数每次调用时将其静态成员加一,在析构函数中将相应的静态成员减一。 使用作用域操作符::访问静态数据成员和成员函数,静态成员不于任何对象相连,所以必须通过类调用静态函数或访问静态成员。 利用静态的成员函数访问私有的静态数据成员。 在main()前初始化静态数据成员,在静态数据成员前加数据类型。 使用静态数据成员记录类的使用情况,如总计或平均值。 几个概念: 编译:将源代码(.cpp)转换为目标代码(.obj)。 目标代码:源文件的内部二进制表示形式。是机器能理解的程序格式,源代码是程序员能理解的程序格式。 连接:将所有的有关的目标代码连接成一个单独的可执行文件(.exe)。 可执行文件:程序被编译连接后的状态。 把程序分成几个文件,特别是类的头部和类的实现部分应该分离出来,这样能保证使用类的程序清晰易读。 |
正在阅读:『21天精通C++』第二周学习笔记(2-3)『21天精通C++』第二周学习笔记(2-3)
2004-02-14 09:34
出处:PConline
责任编辑:zwg
键盘也能翻页,试试“← →”键