﻿1
00:00:04,470 --> 00:00:08,280
‫لذلك نعلم أننا نحتاج إلى بعض المكونات في صنفنا الأساسي.

2
00:00:08,280 --> 00:00:12,570
‫نعلم أننا بحاجة إلى شبكة قاعدة للجزء السفلي من الخزان والبرج.

3
00:00:12,600 --> 00:00:15,270
‫نحتاج أيضًا إلى شبكة برج للجزء العلوي.

4
00:00:15,300 --> 00:00:19,500
‫نحتاج إلى كبسولة للتعامل مع الاصطدام ونحتاج إلى نقطة تفرخ المقذوف.

5
00:00:19,500 --> 00:00:21,270
‫سيكون هذا أحد مكونات المشهد.

6
00:00:21,300 --> 00:00:26,460
‫الآن ، بمجرد إضافة هذه الأشياء إلى فئة الكبسولة الأساسية ، فإن أي شيء نقوم بإنشائه بناءً على

7
00:00:26,460 --> 00:00:28,320
‫هذه الفئة سيرث هذه الأشياء.

8
00:00:28,320 --> 00:00:34,920
‫لذلك يمكننا إنشاء خزان على أساس القاعدة - وبعد ذلك يمكننا إنشاء برج قائم أيضًا على القاعدة

9
00:00:34,920 --> 00:00:35,550
‫-.

10
00:00:35,700 --> 00:00:39,620
‫ولأنها تستند إلى قاعدة البود ، فإنها ترث هذه المكونات.

11
00:00:39,630 --> 00:00:46,380
‫يمكن أن يكون للخزان شبكة القاعدة الخاصة به ، وشبكة البرج الخاصة به ، والكبسولة الخاصة به ، ونقطة تفرخ القذيفة الخاصة

12
00:00:46,380 --> 00:00:46,800
‫به.

13
00:00:46,800 --> 00:00:52,500
‫وبالمثل ، سيحصل البرج على مكون كبسولة شبكي للبرج ونقطة انتشار المقذوف

14
00:00:52,500 --> 00:00:53,370
‫أيضًا.

15
00:00:53,370 --> 00:00:58,560
‫وسنرى قريبًا كيف يمكننا تعيين شبكات مختلفة لكل من هذه الشبكات بحيث تبدو مختلفة.

16
00:00:58,560 --> 00:01:00,750
‫نعلم أننا نحتاج إلى بعض المكونات.

17
00:01:00,750 --> 00:01:05,490
‫حان الوقت الآن لإضافة بعض المكونات إلى صنفنا الأساسي.

18
00:01:05,910 --> 00:01:11,400
‫الآن ، بشكل افتراضي ، لدينا بالفعل قسم عام وقسم محمي وقسم عام

19
00:01:11,400 --> 00:01:12,240
‫ثان هنا.

20
00:01:12,570 --> 00:01:17,520
‫هناك أسباب مختلفة لوجود أقسام عامة متعددة وسنتحدث عنها لاحقًا.

21
00:01:17,520 --> 00:01:20,880
‫لكن بالنسبة لمكوناتنا ، سننشئ قسمًا خاصًا.

22
00:01:22,070 --> 00:01:28,400
‫كما تعلمت سابقًا ، من الجيد أن تكون متغيرات الأعضاء خاصة ، وبهذه الطريقة يمكن الوصول

23
00:01:28,400 --> 00:01:31,790
‫إليها فقط من داخل الفصل الذي يمتلكها.

24
00:01:31,790 --> 00:01:33,410
‫لذلك نحن بحاجة إلى بعض المكونات.

25
00:01:33,680 --> 00:01:36,190
‫أول ما سأضيفه هو الكبسولة.

26
00:01:36,200 --> 00:01:40,760
‫لذلك دعونا ننشئ متغيرًا من نوع مكوّن الكبسولة.

27
00:01:42,160 --> 00:01:44,030
‫الآن سيكون هذا مؤشر.

28
00:01:44,070 --> 00:01:48,880
‫سنستخدم المؤشرات لمعظم المتغيرات طالما أنها ليست من الأنواع الأساسية مثل

29
00:01:48,880 --> 00:01:50,340
‫عدد صحيح أو عدد عشري.

30
00:01:50,350 --> 00:01:55,600
‫وكما تعلمون ، ذلك لأن المؤشرات خفيفة الوزن ، فهي مجرد عناوين وتتيح لنا أن

31
00:01:55,600 --> 00:01:56,860
‫نكون أكثر كفاءة.

32
00:01:56,950 --> 00:02:04,030
‫إذن لدينا مؤشر مكون الكبسولة U وسوف نسمي هذه الكبسولة اختصارًا لمكون الكبسولة.

33
00:02:04,030 --> 00:02:11,140
‫الآن فقط فوق مكون الكبسولة ، سنقوم بإضافة ماكرو غير حقيقي خاص بالمحرك وستكون ملكيتك بأحرف

34
00:02:11,470 --> 00:02:14,020
‫كبيرة مع أقواسها الخاصة.

35
00:02:14,020 --> 00:02:20,980
‫ملكيتك هي وسيلة لجعل المحرك غير الحقيقي على دراية بهذا المتغير حتى يتمكن من المشاركة في محركات غير حقيقية.

36
00:02:20,980 --> 00:02:22,240
‫نظام الانعكاس.

37
00:02:22,690 --> 00:02:28,750
‫يتيح لنا نظام الانعكاس القيام بأشياء مثل تعريض هذا المتغير للمخططات والمشاركة في جمع

38
00:02:28,750 --> 00:02:31,060
‫القمامة وأشياء من هذا القبيل.

39
00:02:31,060 --> 00:02:36,400
‫لذا فإن إضافة الخاصية الخاصة بك ستكون شيئًا سيضيف إلى مكوناتنا أثناء إنشائها.

40
00:02:36,400 --> 00:02:41,980
‫إذن لدينا مكون الكبسولة هذا ولأننا نستخدم نوع مكون الكبسولة YOU ، نحتاج

41
00:02:41,980 --> 00:02:44,860
‫إلى إعلام المترجم بهذا النوع.

42
00:02:44,860 --> 00:02:48,250
‫لا يعرف بشكل افتراضي ما هو مكون الكبسولة.

43
00:02:48,250 --> 00:02:54,640
‫الآن عادة لإخبار المترجم ما هو مكون الكبسولة ، سنقوم بتضمين ملف رأس هنا في الأعلى مع توجيهات

44
00:02:54,640 --> 00:02:59,680
‫التضمين الخاصة بنا إذا انتقلنا إلى وثائق المحرك غير الواقعية وبحثنا عن

45
00:02:59,710 --> 00:03:05,200
‫مكون الكبسولة الخاص بك ، يمكننا أن نرى هنا حيث يقول قم بتضمين ملف الرأس الذي سنحتاج

46
00:03:05,200 --> 00:03:08,950
‫إلى تضمينه لإخبار المترجم عن مكون الكبسولة.

47
00:03:08,950 --> 00:03:13,000
‫الآن يمكننا تضمين هذا هنا في الأعلى ثم لدينا U.

48
00:03:13,000 --> 00:03:18,160
‫سيتم التعرف على نوع مكون الكبسولة من قبل المترجم وسيكون كل شيء رائعًا.

49
00:03:18,220 --> 00:03:24,070
‫لكن الممارسة الجيدة العامة عندما يتعلق الأمر بتشفير هذه الأشياء هي محاولة إبقاء ملف الرأس

50
00:03:24,070 --> 00:03:25,720
‫هذا صغيرًا قدر الإمكان.

51
00:03:25,720 --> 00:03:32,380
‫عندما نقوم بتضمين ملف رأس في هذا الملف ، يأخذ برنامج يسمى preprocessor جميع محتويات

52
00:03:32,380 --> 00:03:37,720
‫ملف الرأس هذا ، ويزيل بعض الأشياء مثل التعليقات ، ثم يلصق حرفيًا جميع

53
00:03:37,720 --> 00:03:40,780
‫محتويات ملف الرأس هذا في هذا الملف.

54
00:03:41,050 --> 00:03:46,810
‫والنتيجة هي أن هذا الملف يكبر لأنه يحتوي على محتويات ذلك الملف المضمن والصقه

55
00:03:46,810 --> 00:03:47,530
‫هنا.

56
00:03:47,530 --> 00:03:50,950
‫نريد فقط تضمين الأشياء عندما نستخدمها.

57
00:03:50,950 --> 00:03:56,740
‫إذن كيف نبتعد عن عدم تضمين ملف الرأس هنا في القاعدة - الرأس؟

58
00:03:56,740 --> 00:04:02,380
‫حسنًا ، يمكننا استخدام شيء في C ++ يُعرف باسم التصريح الأمامي.

59
00:04:02,380 --> 00:04:07,990
‫نعلن عن نوع مكون الكبسولة u هذا باستخدام الكلمة الأساسية للفئة مثل هذه.

60
00:04:08,470 --> 00:04:15,310
‫لاحظ أن المترجم يظهر الآن هذا النوع باللون الأخضر عندما نعلن أن متغيرًا كان قادرًا على الابتعاد

61
00:04:15,310 --> 00:04:18,010
‫عن عدم تضمين ملف الرأس الخاص به.

62
00:04:18,010 --> 00:04:23,830
‫إنه يخبر المترجم أن هذا نوع لذلك لن يعطينا أخطاء IntelliSense بعد الآن ، قائلاً

63
00:04:23,830 --> 00:04:26,170
‫إنه لا يتعرف على هذا كنوع.

64
00:04:26,170 --> 00:04:28,150
‫الآن هذا نوع غير مكتمل.

65
00:04:28,150 --> 00:04:34,150
‫إذا حاولنا بالفعل استخدام هذا النوع إما عن طريق الوصول إلى أعضاء مثل الوظائف والمتغيرات أو

66
00:04:34,150 --> 00:04:38,560
‫محاولة إنشاء كائن من هذا النوع ، فسنحصل على خطأ لأنه نوع غير مكتمل.

67
00:04:38,560 --> 00:04:44,950
‫سنحتاج إلى تضمين ملف الرأس في أي مكان نستخدم فيه هذا النوع للقيام بهذه الأشياء حتى نتمكن من إعادة توجيه

68
00:04:44,950 --> 00:04:48,400
‫إعلان مؤشر من النوع لتجنب الحاجة إلى ملف الرأس.

69
00:04:48,400 --> 00:04:53,230
‫لكن من المهم ملاحظة أننا نحتاج إلى ملفات رأس للتوريث من فئات معينة.

70
00:04:53,230 --> 00:05:00,130
‫لاحظ أن هذه الفئة ترث من بركة وأن ملف رأس البركة مضمن هنا في الأعلى.

71
00:05:00,130 --> 00:05:05,470
‫لذا تتطلب الوراثة ملف الرأس للنوع الذي نرث منه.

72
00:05:05,470 --> 00:05:09,100
‫لذلك دعونا نناقش الإعلان المسبق ولماذا نريد القيام به.

73
00:05:09,130 --> 00:05:17,020
‫لنفترض أن لدينا فئة تسمى Base Pon والتي تحتاج إلى متغير مؤشر من نوع مكون الكبسولة.

74
00:05:17,050 --> 00:05:22,060
‫الآن أنت مكون الكبسولة موجود في ملف رأس مكون الكبسولة.

75
00:05:22,060 --> 00:05:28,470
‫الآن سنستخدم هذا النوع في الواقع بناءً على الوقت الذي نبني فيه كائنًا من U.

76
00:05:28,480 --> 00:05:30,010
‫نوع مكون الكبسولة.

77
00:05:30,010 --> 00:05:36,820
‫لذلك ، بناءً على كل ما نحتاجه حقًا هو أن يكون لدينا مؤشر مكون كبسولة من النوع U.

78
00:05:37,000 --> 00:05:45,160
‫الآن تعتمد الحقيقة على H لا تحتاج في الواقع إلى تفاصيل تنفيذ فئة مكون الكبسولة.

79
00:05:45,160 --> 00:05:50,680
‫بمعنى آخر ، لا يحتاج إلى معرفة كيفية تعريف الوظائف أو حتى حجم فئة مكون

80
00:05:50,680 --> 00:05:51,820
‫الكبسولة.

81
00:05:51,850 --> 00:05:55,750
‫يكون مؤشر مكون الكبسولة بنفس حجم أي مؤشر آخر.

82
00:05:55,750 --> 00:05:57,250
‫إنه مجرد عنوان.

83
00:05:57,250 --> 00:05:58,810
‫الآن في فئة الخطة الأساسية.

84
00:05:58,810 --> 00:06:01,420
‫نريد بناء مكون الكبسولة.

85
00:06:01,510 --> 00:06:08,260
‫لهذا السبب ، نحتاج إلى معرفة حجم مكون الكبسولة من أجل وضع الذاكرة اللازمة لإنشاء

86
00:06:08,260 --> 00:06:09,790
‫هذا الكائن.

87
00:06:09,790 --> 00:06:16,330
‫لذلك في حين أن رأس مكون الكبسولة ليس مطلوبًا بشكل صارم في قاعدة Ponca ، فهو مطلوب تمامًا في القاعدة.

88
00:06:16,350 --> 00:06:24,970
‫تتمثل ممارسة البرمجة الجيدة لـ Porkpie في تضمين الرؤوس فقط في الأماكن التي تحتاج إليها فعليًا حتى

89
00:06:24,970 --> 00:06:32,410
‫نتمكن من الإفلات من الإعلان عن مؤشر مؤشر مكون كبسولة من النوع U في المنتج الأساسي H ثم تضمين

90
00:06:32,410 --> 00:06:39,310
‫مكونات الكبسولة حيث نحتاج إلى تفاصيل التنفيذ لأننا نبني مكون كبسولة ونحتاج إلى

91
00:06:39,310 --> 00:06:41,020
‫معرفة حجم a.

92
00:06:41,310 --> 00:06:43,230
‫مكون الكبسولة في الذاكرة.

93
00:06:43,350 --> 00:06:49,920
‫الآن دعنا نناقش عواقب تضمين ملف header في base pond FX بدلاً من ذلك.

94
00:06:50,010 --> 00:06:55,410
‫كما رأينا ، يمكننا فعل ذلك تمامًا وقد تفكر ، حسنًا ، نحن ندرجه في قاعدة pont

95
00:06:55,410 --> 00:07:01,230
‫CP على أي حال ، فما الفرق الذي سيحدثه إذا قمنا بتضمينه في ملف مقابل آخر؟

96
00:07:01,260 --> 00:07:03,180
‫الآن هنا يأتي دور المشكلة.

97
00:07:03,210 --> 00:07:07,390
‫تم تصميم ملفات الرأس بحيث يتم تضمينها بواسطة ملفات أخرى.

98
00:07:07,410 --> 00:07:12,810
‫لنفترض أن لدينا Base Pond H وقمنا بتضمين مكونات كبسولة فيه.

99
00:07:12,810 --> 00:07:18,600
‫وبعد ذلك في الطريق ، لدينا فئة أخرى وسيكون لدينا مؤشر بركة القاعدة في فئة أخرى

100
00:07:18,600 --> 00:07:23,370
‫، تمامًا كما كان لدينا مؤشر مكون كبسولة في حجرة القاعدة.

101
00:07:23,400 --> 00:07:28,230
‫الآن ، بدلاً من الخوض في مشكلة التصريح عن مؤشر البركة الأساسية وبعض الفئات

102
00:07:28,230 --> 00:07:33,810
‫الأخرى ، سنقوم فقط بإعلانها على أنها عادية وتضمين بيدق القاعدة في فئة أخرى.

103
00:07:34,680 --> 00:07:41,520
‫لذلك ، لا يقتصر دور Base Pond H على تضمين رأس مكون الكبسولة فقط ، مما يؤدي إلى نسخ المزيد من التعليمات البرمجية

104
00:07:41,520 --> 00:07:43,190
‫في ملف الرأس هذا.

105
00:07:43,200 --> 00:07:47,820
‫الآن بعض الفئات الأخرى لها أساس ، والتي تتضمن مكون الكبسولة.

106
00:07:47,820 --> 00:07:55,470
‫لذا فإن كل المحتويات ومكونات الكبسولة موجودة أيضًا داخل فئة أخرى من الفئة H وليست هناك حاجة

107
00:07:55,470 --> 00:07:56,400
‫لها هناك.

108
00:07:56,400 --> 00:08:01,910
‫بعض الفئات الأخرى التي يحتاج H فقط إلى معرفتها حول القاعدة لا تهتم بمكون الكبسولة.

109
00:08:01,920 --> 00:08:07,920
‫لنفترض الآن أننا نواصل هذا النمط وأنشئ فئة أخرى تسمى فئة أخرى ، ومع ذلك قد تحتاج

110
00:08:07,920 --> 00:08:13,680
‫فئة أخرى إلى مؤشر من نوع فئة أخرى الآن بدلاً من التصريح الأمامي.

111
00:08:13,680 --> 00:08:21,180
‫نقوم فقط بتضمين فئة H أخرى في فئة H أخرى والآن داخل فئة أخرى H.

112
00:08:21,210 --> 00:08:27,840
‫على الرغم من أننا لا نحتاج حتى إلى رأس البركة الأساسية أو مكون الكبسولة H ، فقد حصلنا عليه

113
00:08:27,840 --> 00:08:32,730
‫في فئة أخرى لأن بعض الفئات الأخرى تتضمن ملفات الرأس تلك بداخلها.

114
00:08:32,730 --> 00:08:40,140
‫لذلك لدينا نسخ من جميع محتويات مكونات الكبسولة وعلى أساس H عالق هنا في فئة أخرى ، مما يؤدي

115
00:08:40,140 --> 00:08:46,620
‫إلى تضخيم هذا الملف وزيادة أوقات التجميع لأننا لم نقم بإعادة الإعلان.

116
00:08:46,620 --> 00:08:52,440
‫لذا ، بدلاً من ذلك ، فإن أفضل ما يجب فعله هو تضمين ملفات الرأس حيث تكون هناك حاجة فعلية إليها.

117
00:08:52,440 --> 00:08:59,610
‫لذلك إذا أخذنا مكونات الكبسولة وقمنا بتضمينها فقط بناءً على CPP ، ثم في وقت لاحق على الطريق عندما

118
00:08:59,610 --> 00:09:05,340
‫أنشأنا فئة أخرى ونحتاج بالفعل إلى استخدام جراب القاعدة ، يمكننا تضمين الرأس

119
00:09:05,340 --> 00:09:13,440
‫هناك والقاعدة التي لا تتضمن مكونات الكبسولة ، لذلك لم يتم تضمين كل هذا الرمز الإضافي في فئة أخرى.

120
00:09:13,440 --> 00:09:18,810
‫وبعد ذلك عندما نذهب وننشئ فصلًا آخر يحتاج إلى فصل آخر ، يمكننا

121
00:09:18,810 --> 00:09:24,990
‫تضمين فئة أخرى هي h في فصل آخر هو CPP حيث تكون هناك حاجة فعلية له ، ثم فصل

122
00:09:24,990 --> 00:09:30,270
‫آخر لا يمتلئ H بمحتوياته. ملفات رأس أخرى لا يحتاجها.

123
00:09:30,270 --> 00:09:36,990
‫لذلك عندما تحتوي الفئات على تبعيات مثل هذه تعتمد على مكون الكبسولة ، فمن الأفضل الاحتفاظ بهذه التبعيات

124
00:09:36,990 --> 00:09:38,670
‫إلى الحد الأدنى.

125
00:09:38,880 --> 00:09:42,570
‫لذلك سوف أتحداك لإنشاء خطأ تجميع.

126
00:09:42,570 --> 00:09:44,970
‫لا ينبغي أن نخاف من أخطاء الترجمة.

127
00:09:44,970 --> 00:09:47,550
‫إنها مجرد جزء طبيعي من عملية التطوير.

128
00:09:47,550 --> 00:09:54,210
‫لذلك سنقوم بإنشاء واحدة عن قصد للعودة وإزالة الكلمة الأساسية للفصل وتجميعها دون الإعلان

129
00:09:54,210 --> 00:09:56,160
‫عن مركبات الكبسولة.

130
00:09:56,160 --> 00:10:04,080
‫الآن عندما أقول التحويل البرمجي ، أعني أنه يمكنك التحويل من كود Visual Studio ، مجرد تجميع C ++ عادي.

131
00:10:04,110 --> 00:10:10,500
‫لقد تعلمت كيفية القيام بذلك ، أو يمكنك ببساطة حفظ ملفك ورمز Visual Studio وبدء الترميز

132
00:10:10,500 --> 00:10:11,670
‫المباشر.

133
00:10:11,670 --> 00:10:17,280
‫إما أن يكون أحدهما جيدًا وبمجرد أن نمر في هذا معًا ، سأوضح لك ما يحدث بكلتا الطريقتين.

134
00:10:17,280 --> 00:10:22,440
‫إذا كنت تستخدم الترميز المباشر ، فبالطبع ستنظر إلى الإخراج الذي تم إنشاؤه في نافذة الترميز

135
00:10:22,440 --> 00:10:27,270
‫المباشر بدلاً من الإخراج الذي قد تراه في التعليمات البرمجية لـ Visual Studio.

136
00:10:27,270 --> 00:10:33,060
‫الآن المفسد ، ستحصل على خطأ في التجميع ، انظر إلى رسالة خطأ التجميع ، وانظر

137
00:10:33,060 --> 00:10:34,260
‫ما تخبرك به.

138
00:10:34,470 --> 00:10:38,070
‫هذا مجرد التعرف على الأخطاء التي ننتجها.

139
00:10:38,070 --> 00:10:43,500
‫ثم بعد ذلك ، عد للأمام والخلف ، أعلن عن شركات الكبسولة باستخدام الكلمة الأساسية للفصل.

140
00:10:43,620 --> 00:10:48,450
‫بمجرد القيام بذلك ، قم بالتجميع مرة أخرى ، يجب أن تحصل على تجميع ناجح هذه المرة.

141
00:10:48,780 --> 00:10:51,060
‫أوقف الفيديو وجرب هذه المحاولة.

142
00:10:53,520 --> 00:10:56,350
‫حسنًا ، لذلك دعونا نحدث بعض الخراب في الكود الخاص بنا هنا.

143
00:10:56,370 --> 00:10:58,320
‫سأقوم بإزالة الكلمة الأساسية للفصل.

144
00:10:58,700 --> 00:11:03,540
‫حسنًا ، لقد حاولنا التحويل البرمجي ، وها هو الناتج في المحطة.

145
00:11:03,570 --> 00:11:09,300
‫أول شيء نراه هو الخطأ ويعطينا رمز خطأ ويقول إن شركات الكبسولة ليست عضوًا

146
00:11:09,300 --> 00:11:10,830
‫في بيدق أساسي.

147
00:11:10,860 --> 00:11:17,040
‫لدينا ملاحظة تنص على إعلان C عن بيدق أساسي ثم نرى أننا حصلنا على أخطاء أخرى نتيجة

148
00:11:17,040 --> 00:11:17,940
‫لذلك.

149
00:11:17,940 --> 00:11:23,390
‫لذلك في كثير من الأحيان سيشعر الطلاب بالارتباك عندما يحاولون التجميع ويبدو أنهم أخطاء متعددة.

150
00:11:23,400 --> 00:11:28,560
‫لذلك يوضح هذا أن خطأ واحدًا يمكن أن ينشر سلسلة من الأخطاء.

151
00:11:28,560 --> 00:11:31,670
‫وهذا لا يعني أنه عليك الذهاب وإصلاح مجموعة كاملة من الملفات.

152
00:11:31,680 --> 00:11:34,410
‫يمكن أن يكون للخطأ أصل واحد هنا.

153
00:11:34,410 --> 00:11:36,420
‫نحن نعلم ما هو أصل الخطأ.

154
00:11:36,420 --> 00:11:37,820
‫نحن بحاجة إلى إعادة الإعلان.

155
00:11:37,830 --> 00:11:45,150
‫الآن دعنا نرى ما سيحدث إذا استخدمنا الترميز المباشر بدلاً من التجميع العادي ورمز Visual Studio.

156
00:11:45,150 --> 00:11:51,450
‫لذلك سأقوم بالضغط على الزر لبدء البرمجة الحية وعلى الفور باللون الأحمر أرى

157
00:11:51,450 --> 00:11:54,270
‫أن البناء فشل ونرى نفس الشيء هنا.

158
00:11:54,270 --> 00:11:55,050
‫هنا.

159
00:11:55,050 --> 00:11:59,310
‫شركة الكبسولة ليس عضوًا في ورقة البيدق الأساسية.

160
00:11:59,340 --> 00:12:01,860
‫انظر إلى إعلان البيدق الأساسي.

161
00:12:01,860 --> 00:12:03,750
‫لذلك نرى نفس الشيء هنا.

162
00:12:03,750 --> 00:12:08,490
‫لذلك في كلتا الحالتين سنشاهد خطأ مثل هذا عندما ننسى إعادة توجيه الإعلان.

163
00:12:08,490 --> 00:12:16,170
‫والآن نحن نعرف كيف يبدو الأمر ، والآن أصبحنا أكثر إطلاعًا وأقل خوفًا من رسائل خطأ التجميع

164
00:12:16,170 --> 00:12:17,340
‫الغامضة هذه.

165
00:12:17,460 --> 00:12:23,280
‫لذا ما سنفعله هو إصلاح هذا الخطأ عن طريق إعادة توجيه إعلان مكون الكبسولة ، ومن ثم يمكننا محاولة

166
00:12:23,280 --> 00:12:24,990
‫التجميع مرة أخرى.

167
00:12:24,990 --> 00:12:27,780
‫والآن قمنا بالتجميع دون أي أخطاء.

168
00:12:27,870 --> 00:12:32,070
‫والآن نرى كيف يبدو الأمر عندما نسينا إعادة توجيه إعلان متغير.

169
00:12:32,100 --> 00:12:35,250
‫ضع ذلك في الاعتبار عندما تحصل على أخطاء في المترجم في المستقبل.

170
00:12:35,760 --> 00:12:41,490
‫لذلك ، باختصار ، ناقشنا التصريح الأمامي عند إنشاء مؤشر جديد وتعلمنا

171
00:12:41,490 --> 00:12:48,370
‫أنه يجب عليك فقط تضمين ما تستخدمه في ملف CP ويجب علينا تضمين أقل قدر ممكن في الملف

172
00:12:48,450 --> 00:12:49,020
‫H.

173
00:12:49,050 --> 00:12:55,020
‫نحن نعلم أننا لسنا بحاجة إلى ملف الرأس للإعلان عن مؤشر جديد طالما أننا نعيد التصريح

174
00:12:55,020 --> 00:13:00,090
‫وأننا نحتاج إلى ملف الرأس إذا كنا سنقوم ببناء كائن من نوع معين.

175
00:13:00,090 --> 00:13:05,850
‫ونحتاج إلى ملف الرأس للوصول إلى الأعضاء مثل الوظائف والمتغيرات ورأينا أننا

176
00:13:05,850 --> 00:13:09,780
‫في الواقع بحاجة إلى ملف الرأس للوراثة من الفصل.

177
00:13:09,780 --> 00:13:11,460
‫نحن بحاجة إلى ملف الرأس هذا هناك.

178
00:13:11,580 --> 00:13:17,160
‫والآن بعد أن عرفنا كيفية إعادة توجيه إعلان النوع ولدينا مركب كبسولة المؤشر ، فنحن مستعدون

179
00:13:17,160 --> 00:13:21,840
‫بالفعل لبناء كائن مكون كبسولة وسنفعل ذلك في الفيديو التالي.

180
00:13:22,200 --> 00:13:23,040
‫سأراك قريبا.

