﻿1
00:00:04,350 --> 00:00:05,490
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,490 --> 00:00:10,680
‫ในการบรรยายนี้ เราจะเรียนรู้ว่าเราสามารถเข้าถึงสิ่งที่อยู่อีกด้านหนึ่งของตัวชี้ได้อย่างไร

3
00:00:10,680 --> 00:00:17,760
‫เพื่อให้องค์ประกอบผู้เสนอญัตติของเราได้รับคุณสมบัติจากนักแสดงที่มันอาศัยอยู่ เช่น ได้ชื่อนักแสดงหรือ

4
00:00:17,760 --> 00:00:21,780
‫ได้รับตำแหน่ง

5
00:00:21,780 --> 00:00:24,210
‫มาดูกันว่าเราจะทำได้อย่างไร

6
00:00:24,540 --> 00:00:29,730
‫ดังนั้นจึงเป็นเรื่องดีที่จะได้ตัวชี้หรือที่อยู่ของนักแสดง

7
00:00:29,730 --> 00:00:33,660
‫แต่เราจำเป็นต้องสามารถทำอะไรกับนักแสดงได้จริง

8
00:00:34,050 --> 00:00:39,630
‫และขั้นตอนในการทำเช่นนี้ค่อนข้างยุ่งยากที่จะเข้าใจหากเราเพียงแค่มองไปที่นักแสดง

9
00:00:39,630 --> 00:00:47,460
‫เราจะดูที่การทำพอยน์เตอร์เพื่อลอยอยู่ที่นี่ภายในองค์ประกอบติ๊กนั้น

10
00:00:47,460 --> 00:00:54,990
‫มาเริ่มกันด้วยการสร้างทุ่น ซึ่งเราจะเรียกว่าทุ่นของฉัน และตั้งค่านี้เป็นห้า

11
00:00:55,500 --> 00:01:06,360
‫จากนั้นเราจะสร้างโฟลตพอยน์เตอร์ ซึ่งฉันจะเรียกโฟลตของคุณ และเราจะตั้งค่านั้นเป็นแอดเดรสของโฟลตของฉัน

12
00:01:06,570 --> 00:01:09,900
‫ทั้งสองจึงชี้ไปยังที่อยู่เดียวกันในหน่วยความจำ

13
00:01:09,900 --> 00:01:17,010
‫ความแตกต่างคือโฟลตของคุณเป็นที่อยู่ ดังนั้นฉันจึงไม่สามารถพิมพ์ค่าออกมาได้

14
00:01:17,010 --> 00:01:29,940
‫ดังนั้นหากผมต้องการทำบันทึกของคุณ และผมอยากบอกว่าค่าทศนิยมของคุณเท่ากับเปอร์เซ็นต์ F ผมก็จะใส่ทุ่นของคุณลงไป

15
00:01:29,940 --> 00:01:36,150
‫วิธีนี้ใช้ไม่ได้ผลเพราะโฟลตของคุณเป็นตัวชี้ ไม่ใช่โฟลตจริง

16
00:01:36,600 --> 00:01:41,100
‫ดังนั้นสิ่งที่เราต้องทำก็คือ

17
00:01:41,870 --> 00:01:44,960
‫รับคุณค่าจากสถานที่นั้นๆ

18
00:01:45,290 --> 00:01:51,620
‫วิธีที่เราสามารถทำได้ ถ้าต้องเก็บไว้ในตัวแปร float ใหม่ที่เรียกว่า float value

19
00:01:51,620 --> 00:01:56,780
‫ผมก็ใช้ตัวดำเนินการอ้างอิง D ซึ่งจริงๆ แล้วเป็นดาวด้วยเช่นกัน

20
00:01:56,780 --> 00:02:00,710
‫และเราใส่สิ่งนี้ก่อนสิ่งที่เราต้องการอ้างอิง

21
00:02:00,710 --> 00:02:04,760
‫ดังนั้นเราจึงให้ตัวชี้ไปยังการอ้างอิง D ซึ่งในกรณีนี้คือทุ่นของคุณ

22
00:02:05,030 --> 00:02:09,980
‫ตอนนี้มันแปลกนิดหน่อยที่เราใช้ดาวเหล่านี้ในบริบทที่แตกต่างกันสองแบบ

23
00:02:09,980 --> 00:02:16,010
‫อย่างหนึ่ง เรากำลังใช้รูปดาวตามแบบที่บอกว่าเป็นตัวชี้แบบลอยตัว

24
00:02:16,010 --> 00:02:18,970
‫และเมื่อคุณใช้กับประเภท แสดงว่าเป็นตัวชี้

25
00:02:18,980 --> 00:02:28,070
‫เมื่อคุณใช้ดาวก่อนนิพจน์ตัวชี้ สิ่งที่คุณกำลังทำอยู่คือคุณกำลังพูดว่า รับค่าที่ตำแหน่งนี้มาให้ฉัน

26
00:02:28,340 --> 00:02:33,200
‫จากนั้นจึงรับค่าและคัดลอกเป็นค่าทศนิยมและตอนนี้เป็นค่าทศนิยม

27
00:02:33,200 --> 00:02:36,680
‫เราสามารถพิมพ์ออกมาแบบนั้นได้

28
00:02:36,680 --> 00:02:41,200
‫ดังนั้นด้วยการบิดเบี้ยวเหล่านั้น ให้ลองคอมไพล์ดูและใช้งานจริง

29
00:02:41,210 --> 00:02:42,230
‫มาตีกันเล่นๆ

30
00:02:42,230 --> 00:02:48,170
‫และนั่นเองที่บอกว่าค่าทศนิยมของคุณคือ 5 ซึ่งเป็นค่าที่เรามีตั้งแต่แรก

31
00:02:48,800 --> 00:02:53,630
‫ปกติแล้วเราจะไม่เก็บค่ากลางไว้ในตัวแปรเพราะมันสิ้นเปลือง

32
00:02:53,630 --> 00:02:55,640
‫กำลังสร้างสำเนาที่เราไม่ต้องการ

33
00:02:55,640 --> 00:03:00,800
‫สิ่งที่เราทำได้คือใช้สิ่งนั้นโดยตรงในนิพจน์ที่เราต้องการ

34
00:03:00,800 --> 00:03:07,940
‫ดังนั้นค่า float ของคุณจะเป็น star, float ของคุณเป็นเช่นนั้น และนั่นก็จะทำงานในลักษณะเดียวกันทุกประการ ยกเว้นคราวนี้

35
00:03:07,940 --> 00:03:11,600
‫มันจะไม่ทำการคัดลอกไปยังตัวแปรที่ไม่จำเป็น

36
00:03:11,630 --> 00:03:16,490
‫สมมติว่าเราต้องการได้ชื่อนักแสดงเจ้าของที่นี่

37
00:03:16,490 --> 00:03:25,490
‫วิธีที่เราจะทำเช่นนี้ ลองลบสิ่งที่เราทำกับ floats คือเราจะอ้างอิงพอยน์เตอร์ของเจ้าของนั้น

38
00:03:25,490 --> 00:03:29,830
‫ดังนั้นเราจึงสร้างเจ้าของดาวซึ่งทำให้เราได้พบกับนักแสดงจริงๆ

39
00:03:29,840 --> 00:03:36,920
‫จากนั้นเราสามารถใส่วงเล็บคู่หนึ่งรอบเจ้าของแล้วเราก็ทำการจุด

40
00:03:36,920 --> 00:03:44,990
‫เราเลยเอานักแสดงออกจากนิพจน์นี้ ตอนนี้เราสามารถใช้จุดเพื่อดึงบางสิ่งจากข้างในนักแสดง

41
00:03:44,990 --> 00:03:53,030
‫เราจะได้นักแสดง ชื่อหรือป้ายกำกับ ซึ่งจะคืนสตริง f ให้เรา เราจะได้สตริง f

42
00:03:53,030 --> 00:04:07,760
‫ชื่อเท่ากับนี่แล้วเราสามารถพิมพ์เจ้าของเสนอญัตติ SW และแทนที่จะใช้เจ้าของที่นี่ เราจะเริ่มชื่อหรือนำสิ่งนั้นมา

43
00:04:07,760 --> 00:04:10,430
‫เราต้องใส่ดาวไว้ข้างหน้าชื่อ

44
00:04:10,430 --> 00:04:13,250
‫นั่นเป็นอีกหนึ่งการใช้งานสำหรับผู้ดำเนินการดาวดวงนั้น

45
00:04:13,250 --> 00:04:15,230
‫เราเคยเจอมาแล้วสามคน

46
00:04:15,230 --> 00:04:16,700
‫หนึ่งอยู่กับสตริงนี้

47
00:04:16,700 --> 00:04:18,020
‫นั่นเป็นครั้งแรกที่เราได้เห็นมัน

48
00:04:18,020 --> 00:04:24,680
‫จากนั้นก็มาถึงที่นี่พร้อมกับประเภทและที่นี่สำหรับ D ด้วย ซึ่งอ้างอิงถึงการใช้งานมากมายสำหรับตัวละครตัวเดียวกันทุกประการ

49
00:04:24,770 --> 00:04:27,050
‫แต่นั่นเป็นวิธีที่ C++

50
00:04:27,080 --> 00:04:29,120
‫ไปลองเล่นกันดูนะครับ

51
00:04:29,660 --> 00:04:35,180
‫และตอนนี้คุณจะเห็นว่ากำลังพิมพ์ชื่อนักแสดงที่ผู้เสนอญัตติอยู่ด้วย

52
00:04:35,180 --> 00:04:44,600
‫ดังนั้นเราจึงไปถึงตัวชี้นั้นด้วยตัวดำเนินการอ้างอิง D และสามารถเรียกใช้ฟังก์ชันบนวัตถุอื่นได้

53
00:04:44,600 --> 00:04:50,780
‫จริงๆ แล้ว มีรูปแบบที่กะทัดรัดกว่านี้มากสำหรับการทำเช่นนี้ เพราะเป็นเรื่องปกติที่เราจะต้องการรับฟังก์ชันหรือคุณสมบัติจากวัตถุพอยน์เตอร์

54
00:04:50,780 --> 00:05:02,390
‫แทนที่จะต้องทำสิ่งนี้ด้วยวงเล็บ และในขณะที่มันอ้างอิงตัวดำเนินการ เราสามารถรวมสิ่งนี้ได้ทั้งหมด เป็นหนึ่ง

55
00:05:02,390 --> 00:05:09,530
‫เราสามารถลบทั้งหมดนี้หรือย้ายจุด และเราใช้โอเปอเรเตอร์ลูกศรนี้แทน เพื่อให้เราทำลูกศรของเจ้าของ รับนักแสดง

56
00:05:09,530 --> 00:05:14,960
‫ชื่อหรือป้ายกำกับ และสิ่งนี้ทำสิ่งเดียวกันทุกประการ ยกเว้นว่าเขียนง่ายกว่ามาก

57
00:05:14,960 --> 00:05:21,680
‫โดยทั่วไปแล้ว การพูดจะจบลงด้วยกฎที่ว่า ถ้าเรามีตัวชี้ เราใช้ตัวดำเนินการลูกศร

58
00:05:21,680 --> 00:05:29,360
‫หากเราใช้โครงสร้างเช่นสตริง F หรือเวกเตอร์ F เราใช้ตัวดำเนินการจุด

59
00:05:29,420 --> 00:05:37,010
‫ฉันต้องการให้คุณพิมพ์ตำแหน่งของนักแสดงโดยใช้ความรู้ใหม่นี้ว่าเราจะใช้พอยน์เตอร์ได้อย่างไร

60
00:05:37,010 --> 00:05:40,730
‫เลยอยากให้คุณโทรไปขอตำแหน่งนักแสดง

61
00:05:40,730 --> 00:05:47,330
‫คุณจะใช้ตัวดำเนินการลูกศรเพื่อดูผ่านตัวชี้และเรียกใช้ฟังก์ชันนั้นบนวัตถุ

62
00:05:47,330 --> 00:05:51,410
‫อีกด้านหนึ่ง คุณจะต้องเก็บเวกเตอร์ F ที่เป็นผลลัพธ์จากนั่น

63
00:05:51,410 --> 00:06:02,060
‫จากนั้นคุณจะเรียกสตริงที่กะทัดรัดสองอันเก็บผลลัพธ์ในตัวแปรสตริง F ใหม่และพิมพ์ลงในบันทึก

64
00:06:02,090 --> 00:06:04,220
‫หยุดวิดีโอชั่วคราวและไปกันเลย

65
00:06:07,520 --> 00:06:07,880
‫ตกลง.

66
00:06:07,880 --> 00:06:08,840
‫ยินดีต้อนรับกลับ.

67
00:06:08,840 --> 00:06:24,890
‫ฉันจะสร้างเวกเตอร์ F ใหม่ที่เรียกว่า ตำแหน่งเจ้าของ และฉันจะทำลูกศรของเจ้าของ หาตำแหน่งนักแสดง

68
00:06:24,890 --> 00:06:27,650
‫จากนั้นฉันจะแปลงเป็นสตริง

69
00:06:27,650 --> 00:06:35,660
‫ผมจะได้สตริง F ที่เรียกว่า สตริงตำแหน่งเจ้าของ และนั่นจะเท่ากับตำแหน่งเจ้าของดอทถึงสตริงที่กะทัดรัด

70
00:06:35,660 --> 00:06:42,760
‫โอเค โดก

71
00:06:42,770 --> 00:06:45,020
‫ตอนนี้เรามีสตริงที่ตั้งของเราเองแล้ว

72
00:06:45,020 --> 00:06:46,880
‫เราสามารถพิมพ์สิ่งนั้นลงในบันทึก

73
00:06:46,880 --> 00:06:57,290
‫ฉันจะบอกว่าเจ้าของผู้เสนอญัตติคือสิ่งนี้โดยมีเปอร์เซ็นต์ตำแหน่งและเปอร์เซ็นต์นั้นเราจะมีสตริงตำแหน่งเจ้าของดาวอีกคนหนึ่งเช่นนั้นแล้วกด

74
00:06:57,290 --> 00:07:15,860
‫control alt f 11 และเราจะดำเนินการต่อและกดปุ่มเล่นและ พวกเขาไป เรามีทั้งชื่อของนักแสดงและตำแหน่งของมันพิมพ์ออกมาเป็นสตริง

75
00:07:15,860 --> 00:07:21,440
‫ตอนนี้เราสามารถเห็นพลังของการมีพอยน์เตอร์และสามารถเรียกใช้ฟังก์ชันบนพอยน์เตอร์ได้

76
00:07:21,440 --> 00:07:28,520
‫ช่วยให้เราสามารถสื่อสารระหว่างอินสแตนซ์ต่างๆ ของคลาส และทำให้วัตถุของเรามีประโยชน์มากขึ้น

77
00:07:28,520 --> 00:07:30,290
‫เจอกันใหม่ตอนหน้าค่ะ

