您的位置:首页 > 编程语言 > C语言/C++

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

2016-06-11 20:09 288 查看
在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(),两次的值不一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: