关键词搜索

源码搜索 ×
×

C++静态成员变量

发布2014-11-04浏览7551次

详情内容

  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. static int x; // 实现数据共享, 所有该类产生的对象都共用这个x, 比全局变量好。
  6. };
  7. int A::x = 100;
  8. int main()
  9. {
  10. A a;
  11. return 0;
  12. }

       如此一来, 似乎是对私有的变量在类外进行直接访问了啊, 这岂不是违背了类的保护性机制么? 其实没有。 注意:static int x; 是变量的初始化, 而且只能在类体外, 且类外不能直接访问。如:

  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. static int x;
  6. };
  7. int A::x = 100;
  8. int main()
  9. {
  10. A a;
  11. cout << a.x << endl; // error
  12. cout << A::x << endl; // error
  13. return 0;
  14. }

       另外, 书上说, 如果一个静态数据成员声明了,但未被定义, 会有连接错误, 但我貌似没有在VC++6.0中看到错误啊:

  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. static int x;
  6. };
  7. int main()
  8. {
  9. A a;
  10. return 0;
  11. }




相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载