﻿1
00:00:04,330 --> 00:00:05,110
‫Xin chào và chào mừng.

2
00:00:05,110 --> 00:00:11,350
‫Trong bài giảng này, chúng ta sẽ làm cho bản in thành phần kích hoạt của chúng ta được khóa lại khi nó có không

3
00:00:11,380 --> 00:00:15,010
‫gian trống và khi chúng ta đặt gargoyle vào, nó sẽ mở khóa.

4
00:00:15,010 --> 00:00:17,830
‫Và nếu tôi lấy nó ra một lần nữa, nó sẽ bị khóa lại.

5
00:00:17,830 --> 00:00:23,170
‫Và cách chúng tôi sẽ làm điều này là rút chức năng của chúng tôi ra để tìm xem chúng tôi có một tác

6
00:00:23,170 --> 00:00:26,320
‫nhân được chấp nhận vào chức năng riêng biệt của nó hay không.

7
00:00:26,320 --> 00:00:29,320
‫Và chúng ta sẽ tìm hiểu về lợi nhuận sớm trong vòng bốn vòng.

8
00:00:29,320 --> 00:00:31,120
‫Để làm được điều đó, chúng ta hãy đi sâu vào.

9
00:00:31,920 --> 00:00:36,660
‫Vì vậy, đoạn mã này mà chúng tôi có trong thành phần công nghệ đã bắt đầu cảm thấy giống như một chức năng đối với

10
00:00:36,660 --> 00:00:36,900
‫tôi.

11
00:00:36,900 --> 00:00:43,620
‫Về cơ bản, đó là một chức năng nắm giữ tác nhân được chấp nhận, nếu chúng ta có, vì vậy chúng ta có thể tiếp tục

12
00:00:43,620 --> 00:00:45,420
‫với thành phần kích hoạt của mình.

13
00:00:46,230 --> 00:00:49,680
‫Và dưới phần riêng tư, hãy tạo một chức năng như vậy.

14
00:00:49,680 --> 00:00:51,850
‫Bây giờ, kiểu trả về của nó nên là gì?

15
00:00:51,870 --> 00:00:58,980
‫Tôi nghĩ nó phải là con trỏ A, luôn có thể là con trỏ null nếu không có tác nhân nào được

16
00:00:58,980 --> 00:00:59,690
‫chấp nhận.

17
00:00:59,700 --> 00:01:05,190
‫Vì vậy, chúng ta có thể gọi điều này là nhận được tác nhân có thể chấp nhận được là dấu ngoặc đơn trống.

18
00:01:05,190 --> 00:01:06,510
‫Chúng ta không cần phải cho nó bất cứ thứ gì.

19
00:01:06,510 --> 00:01:12,420
‫Và bởi vì nó không thay đổi chức năng của chúng ta, chúng ta có thể làm cho nó là const.

20
00:01:12,450 --> 00:01:16,350
‫Hãy tiếp tục và triển khai điều này trong tệp CPP.

21
00:01:16,350 --> 00:01:26,190
‫Chúng tôi sẽ thụt lề nó, cung cấp cho bạn một dấu hai chấm, dấu hai chấm và thay thế nó bằng dấu chấm phẩy bằng dấu

22
00:01:26,190 --> 00:01:27,030
‫ngoặc nhọn.

23
00:01:27,570 --> 00:01:35,520
‫Và sau đó, mã chúng tôi muốn về cơ bản là nội dung của thành phần tic, ngoại trừ những gì chúng tôi không muốn làm là

24
00:01:35,520 --> 00:01:39,640
‫chỉ ghi lại rằng chúng tôi đã mở khóa diễn viên ở đây.

25
00:01:39,660 --> 00:01:47,280
‫Những gì chúng tôi muốn làm là trong trường hợp chúng tôi đã tìm thấy diễn viên này, về cơ bản chúng tôi muốn trả lại nó.

26
00:01:47,280 --> 00:01:48,870
‫Vì vậy, có một số cách chúng tôi có thể làm điều này.

27
00:01:48,870 --> 00:01:56,370
‫Chúng ta có thể nói khi bắt đầu hàm của chúng ta rằng có một con trỏ tác nhân, con trỏ này sẽ là tác nhân

28
00:01:56,370 --> 00:02:00,840
‫trả về và theo mặc định, chúng ta đặt nó thành con trỏ null.

29
00:02:00,840 --> 00:02:04,380
‫Vì vậy, không có diễn viên nào mà chúng tôi sẽ trở lại.

30
00:02:04,380 --> 00:02:09,360
‫Nhưng khi chúng tôi đi qua vòng lặp for của mình và cuối cùng chúng tôi tìm thấy một diễn viên có

31
00:02:09,360 --> 00:02:16,410
‫thẻ được chấp nhận, thì chúng tôi có thể nói, Này, diễn viên quay lại thực sự phải trỏ đến con trỏ diễn viên mà chúng tôi đã tìm thấy ở

32
00:02:16,410 --> 00:02:17,940
‫đây trong mảng của chúng tôi.

33
00:02:17,940 --> 00:02:22,590
‫Và ở cuối vòng lặp for, sau khi vòng lặp for kết thúc, chúng ta đã xem qua tất cả các tác nhân.

34
00:02:22,590 --> 00:02:28,920
‫Chúng ta có thể tiếp tục và trả về biến tác nhân trả về vì đó là kiểu phù hợp.

35
00:02:29,400 --> 00:02:30,390
‫Không sao đâu.

36
00:02:30,390 --> 00:02:35,400
‫Nhưng nó yêu cầu chúng ta tạo một biến và nó cũng yêu cầu chúng ta chạy qua toàn bộ vòng lặp for, ngay cả khi

37
00:02:35,400 --> 00:02:38,040
‫chúng ta đã tìm thấy một tác nhân có thể chấp nhận được.

38
00:02:38,460 --> 00:02:42,180
‫Vì vậy, một cách tốt hơn để làm điều này là sử dụng trả lại sớm.

39
00:02:42,180 --> 00:02:48,240
‫Và chúng tôi đã từng thấy điều này trước đây khi chúng tôi lấy được CP mà chúng tôi đã thực hiện điều này.

40
00:02:48,240 --> 00:02:54,270
‫Nếu xử lý vật lý bằng một con trỏ null, thì chúng tôi trả về và phần còn lại của thành phần đánh dấu không

41
00:02:54,270 --> 00:02:55,260
‫cần phải chạy.

42
00:02:55,260 --> 00:03:00,180
‫Chúng ta cũng có thể sử dụng cùng một loại hiệu quả trong vòng lặp for.

43
00:03:00,180 --> 00:03:06,960
‫Vì vậy, những gì tôi sẽ làm là nếu chúng tôi đã tìm thấy diễn viên chấp nhận được, chúng tôi sẽ chỉ làm một diễn viên trở lại.

44
00:03:06,960 --> 00:03:11,850
‫Theo nghĩa đen, chúng tôi đang trả về con trỏ mà chúng tôi vừa tìm thấy trong vòng lặp for này và phần còn lại

45
00:03:11,850 --> 00:03:13,500
‫của vòng lặp for không cần phải chạy.

46
00:03:13,800 --> 00:03:20,340
‫Tuy nhiên, nếu chúng ta đi đến cuối vòng lặp for và chúng tôi không tìm thấy gì cả, chúng tôi không trả về bất kỳ

47
00:03:20,340 --> 00:03:23,970
‫thứ gì, việc trả về sẽ dừng vòng lặp for, rời khỏi hàm.

48
00:03:23,970 --> 00:03:28,050
‫Nhưng nếu chúng ta đi đến cuối cùng, chúng ta cần trả lại một cái gì đó theo mặc định.

49
00:03:28,410 --> 00:03:31,860
‫Đây là nơi chúng ta có thể trả về con trỏ null.

50
00:03:31,860 --> 00:03:33,450
‫Vì vậy, đây là giá trị mặc định.

51
00:03:33,450 --> 00:03:35,670
‫Nó có nghĩa là chúng ta đã xem qua toàn bộ vòng lặp for.

52
00:03:35,670 --> 00:03:38,040
‫Chúng tôi đã thấy rằng không có diễn viên nào được chấp nhận.

53
00:03:38,040 --> 00:03:40,410
‫Không có diễn viên nào mà chúng ta đang chồng chéo.

54
00:03:41,300 --> 00:03:42,830
‫Với thẻ chính xác.

55
00:03:42,830 --> 00:03:45,230
‫Vì vậy, chúng tôi trả về con trỏ null.

56
00:03:45,230 --> 00:03:51,260
‫Vì vậy, bây giờ điều đó có nghĩa là tôi đã có biến tác nhân trả lại dư thừa này mà tôi có thể tiếp tục và loại bỏ.

57
00:03:51,260 --> 00:03:53,510
‫Và điều này đọc thực sự khá rõ ràng.

58
00:03:53,510 --> 00:03:58,070
‫Chúng tôi đang đi qua, chúng tôi đang nhận được các tác nhân chồng chéo, chúng tôi đang thực hiện một vòng lặp đầy đủ đối với chúng.

59
00:03:58,070 --> 00:04:02,780
‫Nếu mỗi tác nhân chúng tôi kiểm tra nó, nó đã có thẻ, thẻ chấp nhận được chưa?

60
00:04:02,780 --> 00:04:04,550
‫Nếu nó xảy ra, chúng tôi dừng ngay tại đó.

61
00:04:04,550 --> 00:04:05,720
‫Chúng tôi trả lại cái đó.

62
00:04:05,720 --> 00:04:08,330
‫Nếu không ai trong số họ có nó, chúng tôi trả về một con trỏ null.

63
00:04:08,330 --> 00:04:11,780
‫Vì vậy, hãy thử thách bạn đăng nhập nếu chúng tôi tìm thấy diễn viên.

64
00:04:11,780 --> 00:04:14,570
‫Vì vậy, hãy gọi hàm của chúng tôi trong thành phần đánh dấu của bạn.

65
00:04:14,570 --> 00:04:20,240
‫Kiểm tra xem con trỏ có rỗng hay không và đăng nhập trong cả hai trường hợp, cả hai trường hợp chúng ta có một tác nhân hay chúng ta

66
00:04:20,240 --> 00:04:21,920
‫không sử dụng câu lệnh if và else.

67
00:04:21,920 --> 00:04:23,540
‫Tạm dừng video và tiếp tục.

68
00:04:26,460 --> 00:04:26,850
‫KAYE.

69
00:04:26,850 --> 00:04:27,850
‫Chào mừng trở lại.

70
00:04:27,870 --> 00:04:30,120
‫Vì vậy, chúng ta hãy xem xét các thành phần công nghệ của chúng tôi.

71
00:04:30,120 --> 00:04:35,490
‫Những gì chúng ta sẽ làm là chúng ta sẽ tạo ra một biến, một con trỏ diễn

72
00:04:35,490 --> 00:04:40,620
‫viên, sẽ là tác nhân, tương đương với việc có được diễn viên được chấp nhận.

73
00:04:40,650 --> 00:04:47,220
‫Sau đó, chúng ta sẽ làm nếu tác nhân không bằng con trỏ null, thì trong phần nội dung này, chúng ta sẽ

74
00:04:47,220 --> 00:04:56,520
‫thực hiện mở khóa nhật ký u và sau đó trong nhật ký khác mà bạn đăng nhập lần này đang khóa lại vì đó là hành vi tôi muốn của chúng tôi

75
00:04:56,520 --> 00:05:01,950
‫kích hoạt thành phần và di chuyển nó cùng nhau để có là nếu bạn đã có gargoyle ở

76
00:05:01,950 --> 00:05:08,760
‫đó, nó sẽ mở khóa, nó sẽ sử dụng trình di chuyển và nó sẽ được khóa lại nếu về cơ bản chúng ta

77
00:05:08,760 --> 00:05:12,750
‫bỏ chọn hộp kiểm đang di chuyển nếu chúng ta loại bỏ gargoyle.

78
00:05:12,750 --> 00:05:13,860
‫Vì vậy, hãy biên dịch nó.

79
00:05:13,860 --> 00:05:15,960
‫Vì vậy, chúng ta hãy tiếp tục và chơi.

80
00:05:15,990 --> 00:05:19,620
‫Bạn có thể thấy nó đang bị khóa lại vì chúng tôi không có gargoyle ở đó.

81
00:05:19,650 --> 00:05:21,660
‫Nhặt gargoyle và đưa anh ta đến.

82
00:05:21,660 --> 00:05:22,560
‫Và ở đó bạn đi.

83
00:05:22,560 --> 00:05:27,900
‫Bây giờ nó đang mở khóa, hãy lấy nó ra và nó đang khóa mở khóa, đang khóa lại.

84
00:05:27,900 --> 00:05:28,380
‫Hoàn hảo.

85
00:05:28,380 --> 00:05:30,000
‫Nếu tôi bước vào trong, không có gì xảy ra.

86
00:05:30,000 --> 00:05:31,080
‫Nó chỉ đang khóa lại.

87
00:05:31,230 --> 00:05:38,010
‫Vì vậy, chúng tôi đã thành công trong việc tìm hiểu xem liệu chúng tôi có thứ gì đó trong thành phần kích hoạt của

88
00:05:38,010 --> 00:05:38,850
‫mình hay không.

89
00:05:38,850 --> 00:05:40,680
‫Bây giờ chúng ta chỉ cần làm cho nó làm một cái gì đó.

90
00:05:40,680 --> 00:05:42,750
‫Và đó sẽ là chủ đề của bài giảng tiếp theo.

91
00:05:42,750 --> 00:05:43,500
‫Tôi sẽ gặp bạn ở đó.

