﻿1
00:00:04,420 --> 00:00:05,260
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,260 --> 00:00:12,400
‫ในการบรรยายนี้ เราจะดู C++ ที่เทียบเท่ากับฟังก์ชันพิมพ์เขียวบริสุทธิ์ ซึ่งเป็นฟังก์ชันแนวคิด

3
00:00:12,400 --> 00:00:20,200
‫เราจะดูว่าคีย์เวิร์ดของคู่หมั้นนี้คืออะไร เราใช้อย่างไร และมันจำกัดสิ่งที่เราสามารถทำได้ในโค้ดของเราอย่างไรเพื่อให้เราปลอดภัยยิ่งขึ้น

4
00:00:20,200 --> 00:00:22,000
‫มาดูกันว่ามันทำงานอย่างไร

5
00:00:22,850 --> 00:00:32,570
‫ด้วยการพิมพ์สีน้ำเงิน เราสามารถสร้างฟังก์ชันที่บริสุทธิ์ได้ และนั่นหมายความว่าเราสามารถขจัดความจำเป็นในการสั่งการพิน

6
00:00:32,600 --> 00:00:38,840
‫ทีนี้ ใน C++ เราสามารถทำอะไรที่แรงกว่านี้ได้อีกหน่อย ซึ่งก็คือการทำให้ฟังก์ชันคงที่

7
00:00:39,230 --> 00:00:41,540
‫ทีนี้ การสร้างฟังก์ชัน const หมายความว่าอย่างไร

8
00:00:41,570 --> 00:00:51,950
‫หมายความว่าฟังก์ชันนั้นไม่สามารถแก้ไขสถานะของคลาสของคุณได้ และบังคับใช้ตามกฎของคอมไพเลอร์

9
00:00:51,950 --> 00:00:54,500
‫ผมขอยกตัวอย่าง

10
00:00:54,500 --> 00:01:01,220
‫ถ้าฉันจะใช้ฟังก์ชัน return platform ของเรา นี่ไม่ใช่ฟังก์ชันที่ควรแก้ไขอะไรในคลาส และมันจะเป็นข้อผิดพลาดจริง

11
00:01:01,220 --> 00:01:16,460
‫ๆ หากเราลืมไป เพราะมันคงจะแปลกถ้าเรียกสิ่งนี้และใช้ในคำสั่ง if ที่เปลี่ยนไปจริง ตำแหน่งของชานชาลาหรือถ้ามันอัพเดทระยะทางเคลื่อนที่หรือความเร็วของแพลตฟอร์ม

12
00:01:16,640 --> 00:01:20,540
‫ดังนั้นเพื่อให้ตัวเองซื่อสัตย์ต่อสิ่งนั้น เราสามารถทำให้มันเปลี่ยนใจเลื่อมใสได้

13
00:01:20,540 --> 00:01:28,610
‫และวิธีที่เราทำคือใส่คีย์เวิร์ดผู้ติดต่อหลังวงเล็บของฟังก์ชัน

14
00:01:28,610 --> 00:01:30,920
‫เรามักจะทิ้งช่องว่างไว้ที่นี่เช่นกัน

15
00:01:31,220 --> 00:01:38,390
‫ตอนนี้ เพื่อให้ตรงกับฟังก์ชันในไฟล์ C++ อย่างถูกต้อง เราจึงต้องใส่คีย์เวิร์ด

16
00:01:38,390 --> 00:01:41,700
‫const นั้นไว้ที่นั่นด้วย

17
00:01:41,720 --> 00:01:46,730
‫อย่างที่ฉันพูดไป ตอนนี้ทำให้เกิดข้อผิดพลาดในการทำสิ่งใดๆ ที่จะปรับเปลี่ยนคลาส

18
00:01:46,730 --> 00:01:53,480
‫ดังนั้นหากแพลตฟอร์มกลับมา ฉันต้องพยายามแก้ไขตัวแปรคลาส เช่น ระยะเคลื่อนที่

19
00:01:53,480 --> 00:01:57,050
‫ฉันอาจลองตั้งค่าระยะการเคลื่อนที่เป็น 200

20
00:01:57,320 --> 00:02:01,700
‫มาดูกันว่าจะเกิดอะไรขึ้นเมื่อเราไปที่ Unreal แล้วกดปุ่มคอมไพล์

21
00:02:01,700 --> 00:02:02,020
‫ตกลง.

22
00:02:02,030 --> 00:02:03,830
‫คุณจะเห็นว่าขณะนี้มีข้อผิดพลาด

23
00:02:03,830 --> 00:02:09,230
‫มันล้มเหลวในการสร้างและถ้าคุณดูข้อผิดพลาด คุณจะเห็นว่ามีบางอย่างที่พูดเกี่ยวกับไม่สามารถแก้ไขบางสิ่งได้

24
00:02:09,230 --> 00:02:15,110
‫เนื่องจากมีการเข้าถึงผ่านตัวชี้คงที่

25
00:02:15,110 --> 00:02:17,330
‫ตอนนี้ไม่ต้องกังวลเกี่ยวกับภาษานั้น

26
00:02:17,330 --> 00:02:22,490
‫ตีความยากนิดหน่อย แต่ประเด็นคือมี const ของคีย์เวิร์ดอยู่ และบอกว่าไม่สามารถแก้ไขบางอย่างได้

27
00:02:22,490 --> 00:02:25,760
‫และนั่นเป็นสิ่งสำคัญ

28
00:02:25,760 --> 00:02:31,820
‫นอกจากนี้ หากคุณเรียกใช้ฟังก์ชันใดๆ ที่ไม่ได้ทำเครื่องหมายว่าเป็น const นั่นก็เป็นปัญหาเช่นกัน

29
00:02:31,820 --> 00:02:39,410
‫ดังนั้นในขณะที่เรียกตำแหน่งนักแสดงที่เป็นฟังก์ชันต้นทุนได้ จะไม่เปลี่ยนแปลงอะไรเพียงแค่ได้รับตำแหน่ง

30
00:02:39,410 --> 00:02:48,140
‫เรียกที่ตั้งนักแสดงที่ไม่ได้ถูกทำเครื่องหมายว่าเป็น const นั้นไม่ถูกต้อง ดังนั้นจึงไม่ถูกต้อง

31
00:02:48,140 --> 00:02:50,270
‫มันสามารถปรับเปลี่ยนคลาส

32
00:02:50,270 --> 00:02:55,760
‫ดังนั้นฟังก์ชันใดๆ ที่ไม่ได้ทำเครื่องหมายเป็น const จะไม่ได้รับอนุญาตให้เรียกใช้จากภายในฟังก์ชันต้นทุน

33
00:02:56,090 --> 00:02:58,730
‫ดังนั้นคุณจึงมองเห็นปัญหาที่เกิดขึ้นได้

34
00:02:58,730 --> 00:03:09,620
‫เราไม่สามารถเรียก get Distance ที่เคลื่อนที่จากภายในที่เราควรจะส่งคืน Platform เพราะหากการส่งคืนของ Platform มีค่าคงที่ แต่การได้ระยะทางที่เคลื่อนที่ไม่ได้ถูกทำเครื่องหมายไว้เช่นนั้น

35
00:03:09,620 --> 00:03:16,280
‫ดังนั้นการชาร์จอย่างรวดเร็วให้กับคุณได้รับระยะทางที่เคลื่อนที่ const ทำให้ได้ค่าย้ายระยะทาง

36
00:03:16,280 --> 00:03:26,120
‫ดังนั้นในส่วนหัวและดูไฟล์ p คุณจะเพิ่มคีย์เวิร์ด const นั้นเพื่อให้ C ++ รู้ว่าไม่ควรแก้ไขคลาสและรวบรวมตอนนี้ หยุดวิดีโอชั่วคราวและไปกันเลย

37
00:03:29,320 --> 00:03:29,770
‫ตกลง.

38
00:03:29,770 --> 00:03:30,420
‫ยินดีต้อนรับกลับ.

39
00:03:30,430 --> 00:03:32,830
‫ดังนั้นเราจะไปที่ไฟล์ส่วนหัวก่อน

40
00:03:32,830 --> 00:03:37,120
‫และหลังจากวงเล็บปิด เราจะเพิ่มแนวคิดช่องว่าง จากนั้นเราจะกลับไปที่ไฟล์

41
00:03:37,120 --> 00:03:38,530
‫C++

42
00:03:38,530 --> 00:03:42,670
‫และหลังจากวงเล็บระยะทางเคลื่อนไป เราจะใส่แนวคิดเรื่องอวกาศ

43
00:03:42,670 --> 00:03:47,680
‫ตอนนี้เส้นหยักภายใต้ระยะทางที่ขยับควรอัปเดตในอีกสักครู่

44
00:03:47,680 --> 00:03:55,780
‫แต่ถ้าเราไปที่ Unreal แล้วกดปุ่มคอมไพล์ นั่นจะเป็นตัวตัดสินที่ดีที่สุดว่าคอมไพเลอร์ชอบสิ่งที่เราทำหรือไม่

45
00:03:55,780 --> 00:04:03,100
‫และคราวนี้การรวบรวมก็สำเร็จ ซึ่งหมายความว่าเราได้อัปเดตโค้ดของเราอย่างถูกต้องแล้ว

46
00:04:03,100 --> 00:04:10,780
‫และนั่นก็สมเหตุสมผลเพราะไม่มีอะไรถูกเรียกจากการขยับระยะทางที่ไม่ใช่แนวคิด ไม่ได้พยายามเปลี่ยนแปลงอะไรเลย

47
00:04:10,780 --> 00:04:18,250
‫และที่ที่เราเรียกใช้ฟังก์ชันในกรณีที่แพลตฟอร์มกลับมา เราใช้เฉพาะฟังก์ชัน const และนี่เป็นวิธีที่เราจะเพิ่มความปลอดภัยให้กับโค้ดของเรา

48
00:04:18,250 --> 00:04:26,230
‫เนื่องจากฟังก์ชันต่างๆ จะไม่เปลี่ยนแปลงสิ่งต่างๆ โดยที่เราไม่รู้เกี่ยวกับเรื่องนี้

49
00:04:26,230 --> 00:04:30,790
‫เพื่อเป็นการออกกำลังกายเล็กๆ น้อยๆ สำหรับตัวคุณเอง คุณอาจต้องการดูหน้าที่ทั้งหมดที่เราใช้มาจนถึงตอนนี้

50
00:04:30,790 --> 00:04:35,380
‫และดูว่าฟังก์ชันใดถูกทำเครื่องหมายเป็นค่าคงที่ ซึ่งไม่ใช่ฟังก์ชัน

51
00:04:35,410 --> 00:04:41,890
‫คุณสามารถทำได้โดยเพียงแค่วางเมาส์เหนือฟังก์ชัน เช่น รับตำแหน่งนักแสดง และดูว่าป๊อปอัปที่รวมอยู่หรือไม่

52
00:04:41,890 --> 00:04:46,240
‫ไม่ว่าจะมีการติดต่อหรือไม่ก็ตามหลังวงเล็บ

53
00:04:46,240 --> 00:04:55,360
‫คุณสามารถเห็นได้เมื่อวางตำแหน่งที่ทำงานอยู่เหนือมัน ทำให้ฉันวางเมาส์เหนือได้รับชื่อ และยังทำให้ฉันเห็นว่านี่เป็นข้อผูกมัดและสมเหตุสมผล

54
00:04:55,360 --> 00:04:59,560
‫ทั้งสองไม่ควรเปลี่ยนสถานะของชั้นเรียนของเรา

55
00:04:59,770 --> 00:05:05,110
‫ตอนนี้ ถ้าฉันวางเมาส์เหนือขีด คุณจะเห็นว่าอันนี้ไม่ได้ทำเครื่องหมายเป็น const และนั่นก็สมเหตุสมผลเพราะโดยปกติแล้ว

56
00:05:05,110 --> 00:05:11,350
‫Tick จะใช้เพื่ออัปเดตว่าคลาสอยู่ในตำแหน่งใดในโลกหรือสถานะใดๆ ของคลาส

57
00:05:11,500 --> 00:05:13,360
‫และเราได้เวกเตอร์แล้ว

58
00:05:13,360 --> 00:05:18,880
‫ถ้าเราวางเมาส์เหนือ ปลอดภัย ปกติ คุณจะเห็นว่ามันถูกทำเครื่องหมายเป็น const นั่นเป็นเพราะ

59
00:05:18,880 --> 00:05:24,790
‫get safe normal ไม่ได้แก้ไขเวกเตอร์จริงๆ มันก็แค่คืนค่าที่มีเวกเตอร์ใหม่อยู่ในนั้น

60
00:05:24,790 --> 00:05:25,510
‫แค่นั้นเอง

61
00:05:25,510 --> 00:05:32,620
‫สำหรับการบรรยายนี้ เราได้เรียนรู้เกี่ยวกับการเพิ่ม const ให้กับฟังก์ชันของเรา เพื่อเพิ่มความปลอดภัยของโค้ดของเรา

62
00:05:32,620 --> 00:05:34,060
‫เจอกันใหม่ตอนหน้าค่ะ

