diff --git a/gameplayer1.h b/gameplayer1.h
index 74187a5..306ae39 100644
--- a/gameplayer1.h
+++ b/gameplayer1.h
@@ -23,4 +23,12 @@ private:
 };
 #endif

+// 这样做可以实现所谓的封装性，但是不是很好，其中#define中的符号不占类和对象的内存空间。
+class GamePlayer3 {
+private:
+#define NUMTURNS 5
+    int scores[NUMTURNS];
+#undef NUMTURNS
+};
+
 #endif
diff --git a/main.cc b/main.cc
index bd16cff..1907bbc 100644
--- a/main.cc
+++ b/main.cc
@@ -15,6 +15,9 @@ int main(int argc, char *argv[])
     fprintf(stdout, "The sizeof class GamePlayer1 is %ld\n", sizeof(GamePlayer1));
     fprintf(stdout, "The sizeof object player2 is %ld\n", sizeof(*player2));

-    return 0;
+    GamePlayer3 *player3 = new GamePlayer3();
+    fprintf(stdout, "The sizeof class GamePlayer3 is %ld\n", sizeof(GamePlayer3));
+    fprintf(stdout, "The sizeof object player3 is %ld\n", sizeof(*player3));

+    return 0;
 }
diff --git a/gameplayer1.h b/gameplayer1.h
index 306ae39..a13a9d1 100644
--- a/gameplayer1.h
+++ b/gameplayer1.h
@@ -31,4 +31,15 @@ private:
 #undef NUMTURNS
 };

+// 如果不希望常量被引用或者取地址，这种方式是最佳方式，推荐使用。且枚举不占对象/类内存空间
+class GamePlayer4 {
+private:
+    enum {
+        NumTurns = 5
+    };
+    int scores[NumTurns];
+    // int ptest = &NumTurns;
+    // int& test = NumTurns;
+};
+
 #endif
diff --git a/main.cc b/main.cc
index 1907bbc..2732824 100644
--- a/main.cc
+++ b/main.cc
@@ -19,5 +19,10 @@ int main(int argc, char *argv[])
     fprintf(stdout, "The sizeof class GamePlayer3 is %ld\n", sizeof(GamePlayer3));
     fprintf(stdout, "The sizeof object player3 is %ld\n", sizeof(*player3));

+    GamePlayer4 *player4 = new GamePlayer4();
+    fprintf(stdout, "The sizeof class GamePlayer4 is %ld\n", sizeof(GamePlayer4));
+    fprintf(stdout, "The sizeof object player4 is %ld\n", sizeof(*player4));
+
+
     return 0;
 }