c++类中static 类型变量使用
2016-06-11 20:09
288 查看
在C++语音中类的静态数据成员在初始化时比较特殊,以为它并不是在类的定义中初始化,而是在类的定义外被初始化。如下示例:
另外,一个类中的静态变量是被所有类对象所共有的,所以无论定义多少个类对象,静态数据成员只有一份。同时,如果一个对象修改了静态数据变量,其他对象的数据数据成员(其实是一个静态数据成员)也将改变。如上例中test1.getname(),两次的值不一样。
<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(),两次的值不一样。
相关文章推荐
- C++基础总结
- CSP考试 2015年12月第3题 画图 C++实现
- 飛飛(六十二)将程序补充完整
- c++实践参考:存储班长信息的学生类
- C++中typename关键字的使用方法和注意事项
- c++单链表【构造函数、运算符重载、析构函数、增删查改等】
- c++双链表【构造函数、运算符重载、析构函数、增删查改及逆置等】
- c++顺序表【构造函数、运算符重载、析构函数、增删查改等】
- C++用模板实现顺序表和栈
- C++用模板实现双链表和队列
- 【C++】智能指针shared_ptr 定位删除器(仿函数)
- 浅析c++异常
- C++之虚继承
- C语言 在屏幕上输出菱形图案
- C语言 求出100~999之间的所有“水仙花数”并输出
- C语言:编写strcpy函数
- C语言打印100 ——200之间的素数
- C语言判断1000—2000年之间的闰年
- C语言中不允许创建临时变量,交换两个数的内容
- C语言中写一个函数返回参数二进制中 1 的个数