C++ 静态数据成员使用易错点
来源:互联网 发布:硕鼠下载mac 编辑:程序博客网 时间:2024/05/22 13:48
先看代码
#include <iostream> #include <conio.h> using namespace std; class test { public: static int i; //(1)static const int count = 1; // 静态常量成员可以在类内初始化//(2)test() {} void print(); private: static int j; }; int test::i = 2; //(1)int test::j = 3; void test::print() { cout << "i = "<< i << endl; cout << "j = "<< j << endl;} int main() { test t; t.print(); cout << "i = "<< t.i << endl;//(3)//cout << "j = "<< t.j << endl;//测试是否可以不受private作用 (4)return 0; }
输出:
程序运行成功,从注释中的(1)~(4)标记的位置可以看到,静态数据成员在使用时有一下一些特点。
1、类的静态成员(static member)必须在类内声明,在类外初始化。因为静态成员属于整个类,而不属于某个对象。标记(1)。
2、类的静态成员可以直接被类名调用。i的初始化语句说明了这点,同时注意类外初始化不再需要static关键字。标记(1)。
3、静态常量成员可以在类内初始化。静态常量数据成员可以在类内初始化(即类内声明的同时初始化),也可以在类外,即类的实现文件中初始化,不能在构造函数中初始化,也不能在构造函数的初始化列表中初始化。标记(2)。
4、静态数据成员可以被类对象调用。尽管静态数据成员不属于某个对象。标记(3)。
5、静态数据成员能受private控制符的作用。静态数据成员是可以为private类型的,能受private控制,但是private类型的静态数据只能被类成员函数访问,类外对象不能直接调用,因为对象不能调用类的私有类型。main函数里被注释掉的cout语句不能编译通过。标记(4)。
阅读全文
0 0
- C++ 静态数据成员使用易错点
- C++static静态数据成员
- C++ 静态数据成员使用
- static(c++)静态数据成员和静态成员函数
- c++:静态函数成员与静态数据成员
- 3-6 静态数据成员与静态成员函数(c++)
- C++_静态数据成员和静态成员函数
- c++:静态成员变量和静态成员函数使用问题
- 【C++】类的静态数据成员
- Objective-C类的静态数据成员
- static静态数据成员的使用
- C++的静态数据成员的使用
- 类中使用静态数据成员
- 练习静态数据成员的使用
- c语言中静态成员的使用
- C++:静态成员函数,静态数据成员,成员函数存储方式
- 静态数据成员
- 静态数据成员
- 使用Adaboost训练车牌定位——(2)
- keepalived配置文件简要说明
- visual studio 2015 c++ 连接mysql
- 遍历List集合的三种方法
- 不用加减乘除做加法java实现
- C++ 静态数据成员使用易错点
- RecyclerView接口回调
- [LeetCode]19. Remove Nth Node From End of List
- 面向对象和基于对象的区别
- 高数复习之自变量名称的奇葩含义
- 如何在Java中创建和使用Scanner类
- ubuntu解决ecplise的崩溃
- 回溯法总结
- UVa12018 Juice Extractor ( DP )