c++类中static 类型变量使用

来源:互联网 发布:龙门侧铣头编程 编辑:程序博客网 时间:2024/04/30 08:10
在C++语音中类的静态数据成员在初始化时比较特殊,以为它并不是在类的定义中初始化,而是在类的定义外被初始化。如下示例:
<pre name="code" class="html">#include"iostream"#include"string.h"class test{public:static char strStaticname[10];static int buf;test(){}test(char *strname){strcpy_s(strStaticname, strname);}test(char *strname, int num){printf("XXOO\n");}char *getname(){return strStaticname;}int getbuffer(){return buf;}};char test::strStaticname[10] = "东方不败";//类静态变量在外部赋值int test::buf = 1;int main(int arc, char *argv[]){printf("创建带参数 张无忌\n");test test1("张无忌");printf("获取类test1名字 :%s\n", test1.getname());printf("创建不带参数\n");test test2("李寻欢");printf("获取类test2名字 :%s\n", test2.getname());printf("获取不带参数类数据buf=%d\n", test2.getbuffer());test test3("乔峰", 1);printf("获取类test1名字 :%s\n", test1.getname());}


另外,一个类中的静态变量是被所有类对象所共有的,所以无论定义多少个类对象,静态数据成员只有一份。同时,如果一个对象修改了静态数据变量,其他对象的数据数据成员(其实是一个静态数据成员)也将改变。如上例中test1.getname(),两次的值不一样。                                             
0 0
原创粉丝点击