diff --git a/gameplayer1.h b/gameplayer1.h
index e69de29..74187a5 100644
--- a/gameplayer1.h
+++ b/gameplayer1.h
@@ -0,0 +1,26 @@
+#ifndef GAMEPLAYER1_H
+#define GAMEPLAYER1_H
+
+// 如果static成员变量被引用或者取地质（即使是在类内部，也要将static放在public下）
+// 如果static成员变量没有被引用或者取地址，是不会在对象内占据空间的
+// 在类外引用，则必须在实现中，提供定义式
+
+class GamePlayer1 {
+public:
+    static const int NumTurns = 5;      // 4字节
+private:
+    int scores[NumTurns];               // 20字节
+    const int* ptest = &NumTurns;       // 8字节
+    const int& test = NumTurns;         // 8字节
+};
+
+#if 0
+class GamePlayer2 {
+private:
+    static const int NumTurns = 5;
+    int scores[NumTurns];
+    // const int* pNumTurns = &NumTurns;
+};
+#endif
+
+#endif
diff --git a/main.cc b/main.cc
index e69de29..bd16cff 100644
--- a/main.cc
+++ b/main.cc
@@ -0,0 +1,20 @@
+#include <cstdio>
+#include "./gameplayer1.h"
+
+const int GamePlayer1::NumTurns;
+
+int main(int argc, char *argv[])
+{
+    GamePlayer1* player1 = new GamePlayer1();
+    fprintf(stdout, "The sizeof class GamePlayer1 is %ld\n", sizeof(GamePlayer1));
+    fprintf(stdout, "The sizeof object player1 is %ld\n", sizeof(*player1));
+
+
+    GamePlayer1* player2 = new GamePlayer1();
+    const int *pNumTurns = &GamePlayer1::NumTurns;
+    fprintf(stdout, "The sizeof class GamePlayer1 is %ld\n", sizeof(GamePlayer1));
+    fprintf(stdout, "The sizeof object player2 is %ld\n", sizeof(*player2));
+
+    return 0;
+
+}