码迷,mamicode.com
首页 > 编程语言 > 详细

C++静态成员的应用

时间:2015-07-16 21:54:30      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

  1. 当在类外部定义静态成员时,不能重复使用static关键字
  2. 静态成员函数不包含this指针(无论是显示还是隐式使用)
  3. 静态成员可以通过类对象进行访问,也可以通过类进行访问
  4. 静态成员不是由构造函数初始化的,一般来说不能在类的内部初始化静态成员
  5. 静态数据成员定义在任何函数之外,且只能被定义一次
  6. 在定义静态数据成员时,通过类限定符可以访问该静态数据成员,无论该静态数据成员是public、protected还是private,但是只能在定义时这样做
  7. 静态数据成员的类型可以是它所属于的类类型,而非静态数据成员只能声明它所属类的指针或引用
  1. #ifndef MAIN_H_INCLUDED
  2. #define MAIN_H_INCLUDED
  3. #include <iostream>
  4. using namespace std;
  5. class ClassTest
  6. {
  7. public:
  8. static int getValue() ;
  9. private:
  10. static int value /*= 1*/;
  11. };
  12. #endif // MAIN_H_INCLUDED
.cpp文件
  1. #include "main.h"
  2. /**< 对于静态数据成员一般不能在类内进行初始化 */
  3. /**< 若要在类内进行初始化,则要求静态成员必须是常量表达式 */
  4. int ClassTest::value = 2;//在定义时,尽管value是private类型,依然可以通过类限定符进行访问
  5. int ClassTest::getValue()
  6. {
  7. return value;
  8. }
  9. int main()
  10. {
  11. ClassTest classTest;
  12. cout << classTest.getValue() << endl;
  13. /**< 可以使用类名直接访问静态成员,在类外不能访问private成员 */
  14. //cout << ClassTest::value << endl;/**< 错误,因为value是private */
  15. cout << ClassTest::getValue() << endl;
  16. return 0;
  17. }





C++静态成员的应用

标签:

原文地址:http://www.cnblogs.com/fengkang1008/p/4652247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!