﻿1
00:00:04,380 --> 00:00:05,490
‫Hallo en welkom.

2
00:00:05,490 --> 00:00:11,640
‫In deze lezing gaan we onze eigen klassenlidfuncties implementeren, platform verplaatsen en platform

3
00:00:11,640 --> 00:00:12,570
‫roteren.

4
00:00:12,570 --> 00:00:16,950
‫We gaan kijken hoe we ze zo kunnen opzetten dat ze argumenten kunnen opnemen.

5
00:00:17,280 --> 00:00:20,970
‫En het zal ons helpen onze code een beetje op te ruimen.

6
00:00:20,970 --> 00:00:23,100
‫Laten we erin duiken en kijken hoe dit werkt.

7
00:00:24,150 --> 00:00:29,520
‫Dus tot nu toe hebben we de C++-functies gebruikt die al voor ons zijn gemaakt.

8
00:00:29,520 --> 00:00:34,620
‫We hebben deze gebruikt en we kunnen spelen in termen van het schrijven van hun functionaliteit.

9
00:00:34,800 --> 00:00:38,100
‫En we hebben ook functies gebruikt die andere mensen voor ons hebben geschreven.

10
00:00:38,100 --> 00:00:40,830
‫We hebben ze gebeld, zoals actieve locatie krijgen en naam krijgen.

11
00:00:41,370 --> 00:00:49,080
‫Hoe kunnen we nu nieuwe eigen functies maken om onze code te organiseren en deze functies klein en

12
00:00:49,080 --> 00:00:51,630
‫alles veel leesbaarder te houden?

13
00:00:52,380 --> 00:00:57,930
‫Welnu, we hebben de basisbouwstenen al op hun plaats door tegen het einde van de sectie te komen.

14
00:00:57,930 --> 00:01:00,300
‫We begrijpen veel meer over de C++-syntaxis.

15
00:01:00,300 --> 00:01:08,100
‫Dus wat ik wil doen, is in wezen een nieuwe functie op het bewegende platform creëren waarmee we alleen

16
00:01:08,550 --> 00:01:12,360
‫een intake kunnen hebben, bijvoorbeeld call move platform.

17
00:01:12,930 --> 00:01:14,160
‫Waarom wil ik dat doen?

18
00:01:14,160 --> 00:01:20,250
‫Omdat het mogelijk is om een functie-aanroep als deze genaamd MOVE Platform te doen, past het echt bij wat

19
00:01:20,250 --> 00:01:22,560
‫we op dit moment proberen te doen.

20
00:01:22,560 --> 00:01:28,380
‫We hebben veel te maken met technologie en het is me niet helemaal duidelijk waarom we dit allemaal doen als ik hem

21
00:01:28,380 --> 00:01:34,230
‫even kom bekijken, als ik de technologie in ga en een functie zie met de tekst Verplaats platform , dan heb ik

22
00:01:34,710 --> 00:01:39,570
‫opeens de context voor wat al deze dingen zouden moeten doen, en ik heb geen enkele opmerking nodig

23
00:01:39,570 --> 00:01:42,300
‫om me te vertellen wat er aan de hand is.

24
00:01:42,510 --> 00:01:47,430
‫Dit zal vooral handig zijn als we de mogelijkheid toevoegen om het platform ook te

25
00:01:47,430 --> 00:01:48,000
‫draaien.

26
00:01:48,930 --> 00:01:52,710
‫Dus hoe definiëren we declaratiefuncties?

27
00:01:52,710 --> 00:01:56,610
‫Welnu, het declaratieaspect wordt in de kop van het bestand gedaan.

28
00:01:56,610 --> 00:02:02,100
‫Dat is waar we eigenlijk zeggen dat we naar C++ gaan, we gaan een functie hebben die er ongeveer zo

29
00:02:02,100 --> 00:02:02,970
‫uit gaat zien.

30
00:02:03,390 --> 00:02:06,870
‫En dan in de C ++ is waar we de functie daadwerkelijk definiëren.

31
00:02:06,870 --> 00:02:09,840
‫We geven het de body, we vertellen het precies aan C++.

32
00:02:09,840 --> 00:02:12,390
‫Zo werkt de functie.

33
00:02:13,230 --> 00:02:16,020
‫En laten we eens kijken hoe we dit kunnen doen.

34
00:02:16,470 --> 00:02:20,700
‫We hebben een paar voorbeelden van functies en we hebben grote in het spel, we hebben technologie.

35
00:02:21,180 --> 00:02:28,860
‫En het is een goed moment voor ons om te kijken naar de verschillende secties die we in een headerbestand hebben.

36
00:02:29,070 --> 00:02:34,950
‫We hebben openbaar en beschermd dat hier wordt vermeld en openbaar wordt opnieuw genoemd.

37
00:02:35,490 --> 00:02:36,450
‫Wat betekent dit nu?

38
00:02:36,450 --> 00:02:43,350
‫Deze sleutelwoorden met de dubbele punt aan het einde definiëren in feite een deel van toegankelijkheid.

39
00:02:43,350 --> 00:02:46,200
‫Deze functies, waar vandaan ze toegankelijk zijn.

40
00:02:46,770 --> 00:02:51,360
‫We hebben gezien dat het veilig is normaal.

41
00:02:51,360 --> 00:02:57,930
‫Dit is een functie die we aanroepen op een F-vector, maar we roepen deze aan vanuit een andere klasse,

42
00:02:57,960 --> 00:02:59,670
‫niet vanuit een F-vector.

43
00:03:00,240 --> 00:03:04,860
‫Dit betekent dus dat de toegankelijkheid van deze functie openbaar moet zijn.

44
00:03:05,040 --> 00:03:09,690
‫Nu laten we het even terzijde omdat het daar een beetje ingewikkelder wordt.

45
00:03:10,020 --> 00:03:14,130
‫Maar er is nog een ander type trefwoord dat we kunnen gebruiken, namelijk privé.

46
00:03:14,730 --> 00:03:21,210
‫Dus ik ga na take toevoegen, ik ga de private keyword-notificatie toevoegen dat ik deze secties niet laat inspringen en

47
00:03:21,210 --> 00:03:24,330
‫we gaan een dubbele punt aan het einde zetten.

48
00:03:24,330 --> 00:03:29,040
‫En dat betekent dat alles wat daarna komt tot de volgende sectie, het volgende sleutelwoord

49
00:03:29,040 --> 00:03:31,440
‫dat ik hier invul, privé zal zijn.

50
00:03:31,860 --> 00:03:37,650
‫Dus dat betekent dat we al deze variabelen hebben genomen en hebben gezegd: Hé, geen enkele andere klas mag deze

51
00:03:37,650 --> 00:03:37,980
‫aanraken.

52
00:03:38,430 --> 00:03:42,660
‫En dat is meestal de beste gewoonte die we tot nu toe niet hebben gedaan, omdat ik de dingen niet

53
00:03:42,660 --> 00:03:44,400
‫een beetje te verwarrend voor je wilde maken.

54
00:03:44,790 --> 00:03:49,320
‫Maar variabelen in klassen zouden over het algemeen hun eigen zaak moeten zijn.

55
00:03:49,320 --> 00:03:55,950
‫Het is een van de belangrijkste huurders van objectgeoriënteerd programmeren dat we klassen overlaten om hun eigen variabelen te beheren,

56
00:03:55,950 --> 00:04:02,040
‫en we hebben er alleen toegang toe met functies waarvan de klasse aangeeft dat ze openbaar zijn.

57
00:04:03,180 --> 00:04:08,010
‫Dus wat we hier gaan doen, is dat we hier wat meer privé-functies gaan toevoegen, omdat we

58
00:04:08,010 --> 00:04:12,090
‫niet willen dat zoiets als Move Platform van buiten de klas wordt aangeroepen.

59
00:04:12,390 --> 00:04:16,320
‫We willen dat het wordt beheerd door onze eigen technische functie.

60
00:04:16,950 --> 00:04:20,340
‫Dus hoe definiëren we een privéfunctie?

61
00:04:20,340 --> 00:04:22,620
‫Nou, we hebben het in een privégedeelte geplaatst.

62
00:04:22,620 --> 00:04:24,600
‫Dus we hebben hier ons privésleutelwoord.

63
00:04:24,810 --> 00:04:31,410
‫Ik ga het echter achter onze variabelen plaatsen en we beginnen met het retourtype.

64
00:04:31,410 --> 00:04:38,670
‫En als onze functie niets retourneert, typen we gewoon void om aan te geven dat er geen terugkeer uit deze

65
00:04:38,670 --> 00:04:39,780
‫functie komt.

66
00:04:40,530 --> 00:04:42,540
‫Dan geven we het een functienaam.

67
00:04:42,540 --> 00:04:51,110
‫Dus we hadden platform verplaatsen was wat we wilden en dan geven we het een paar haakjes om aan te geven dat dit een functie is, we openen

68
00:04:51,120 --> 00:04:56,880
‫en sluiten haakjes en dan een puntkomma om de regel af te maken en te zeggen, oké, dat is

69
00:04:56,880 --> 00:04:57,270
‫het.

70
00:04:57,270 --> 00:05:03,180
‫Dat is de functie die ik hier in het headerbestand wil declareren en dat alles.

71
00:05:03,230 --> 00:05:04,970
‫Er staat Dit is de vorm van de functie.

72
00:05:04,970 --> 00:05:06,020
‫Dit is de terugkeer.

73
00:05:06,200 --> 00:05:11,630
‫Dit is welke parameters het nodig heeft en de naam en tot welke klasse het behoort.

74
00:05:11,660 --> 00:05:16,250
‫Om het nu daadwerkelijk een implementatie te geven, moeten we het in het C++-bestand definiëren.

75
00:05:16,250 --> 00:05:17,330
‫Dus laten we daarheen gaan.

76
00:05:17,870 --> 00:05:23,480
‫En aan het einde van het bestand, net buiten eventuele accolades, doen we het hier.

77
00:05:23,510 --> 00:05:25,610
‫We beginnen opnieuw met het retourtype.

78
00:05:25,610 --> 00:05:31,970
‫Dus dat wordt dan ongeldig omdat we ons in een C++-bestand bevinden, we zitten niet tussen de accolades van

79
00:05:31,970 --> 00:05:32,710
‫een klasse.

80
00:05:32,720 --> 00:05:41,330
‫We moeten de scope resolutie-operator gebruiken om te zeggen dat we een functie proberen te definiëren vanuit de klasse

81
00:05:41,330 --> 00:05:42,550
‫bewegend platform.

82
00:05:42,560 --> 00:05:49,130
‫Dus we typen de naam van de klasse, wat een bewegend platform is, en onthouden dat er een voorvoegsel is om te zeggen dat

83
00:05:49,130 --> 00:05:50,390
‫het een acteur is.

84
00:05:51,380 --> 00:05:55,940
‫Vervolgens gebruiken we dubbele punt, dubbele punt, de operator voor bereikresolutie, en dan gebruiken we de naam

85
00:05:55,940 --> 00:05:58,700
‫van de functie die we definiëren, namelijk het MOVE-platform.

86
00:05:59,420 --> 00:06:03,400
‫En dan gebruiken we dezelfde set parameters als in het headerbestand.

87
00:06:03,410 --> 00:06:07,700
‫In dit geval hadden we een lege set parameters, dus we hebben alleen de haakjes.

88
00:06:08,390 --> 00:06:15,200
‫En in plaats van een puntkomma aan het einde van deze regel op een nieuwe regel te plaatsen, plaatsen

89
00:06:15,200 --> 00:06:18,590
‫we een accolade openen en een bijbehorende accolade sluiten.

90
00:06:19,070 --> 00:06:24,830
‫En tussen deze accolades waar we de code voor onze functie zetten, fantastisch.

91
00:06:24,830 --> 00:06:29,720
‫Dus wat ik nu wil doen, is proberen te zeggen, nou, al deze functionaliteit die we hier hebben, en in feite ga

92
00:06:29,720 --> 00:06:32,270
‫ik de opmerkingen verwijderen omdat we ze niet langer nodig hebben.

93
00:06:32,270 --> 00:06:38,120
‫Het was de pseudocode die we gebruikten om dit te implementeren, maar nu heeft het zijn doel gediend.

94
00:06:38,120 --> 00:06:40,160
‫We begrijpen wat de coderegels doen.

95
00:06:40,640 --> 00:06:48,860
‫Ik ga alles behalve de platformfunctie verplaatsen uit de take halen en kopiëren en in plaats daarvan

96
00:06:48,860 --> 00:06:51,290
‫in onze MOVE-platformfunctie plakken.

97
00:06:52,100 --> 00:06:57,710
‫Dus dit zou ongeveer hetzelfde moeten werken, want als we de technologie ingaan, noemen we move platform en het

98
00:06:57,710 --> 00:06:59,510
‫draait gewoon hetzelfde stukje code.

99
00:06:59,510 --> 00:07:05,870
‫Alleen hebben we het nu gebundeld in een functie en het maakt het voor ons gemakkelijker om te lezen en mogelijk opnieuw te gebruiken

100
00:07:05,870 --> 00:07:06,710
‫in de toekomst.

101
00:07:07,250 --> 00:07:11,150
‫Maar als u dit doet, zult u merken dat er een probleem is.

102
00:07:11,930 --> 00:07:19,820
‫We hebben toegang tot Delta-tijd en dat is een parameter waar we geen toegang meer toe hebben omdat het een parameter was die in de

103
00:07:19,820 --> 00:07:20,870
‫technologie werd doorgegeven.

104
00:07:21,500 --> 00:07:29,600
‫Dus als we dat willen bemachtigen, moeten we wel een parameter in onze functie hebben.

105
00:07:30,080 --> 00:07:32,960
‫Dus als we parameters definiëren, moeten we dat op twee plaatsen doen.

106
00:07:32,960 --> 00:07:37,490
‫Net zoals wanneer we de functie definiëren, gaan we terug naar het headerbestand en

107
00:07:37,820 --> 00:07:40,130
‫tussen de haakjes van onze MOVE-platformfunctie.

108
00:07:40,130 --> 00:07:45,710
‫Dit is waar we zeggen welke parameters we willen en het is precies hetzelfde als het definiëren van een variabele.

109
00:07:45,710 --> 00:07:48,080
‫Je moet het een type geven en het een naam geven.

110
00:07:48,080 --> 00:07:52,970
‫Dus we gaan zeggen dat het een type float zal zijn en we kunnen het gewoon Delta-tijd noemen.

111
00:07:52,970 --> 00:07:54,290
‫Het hoeft niet dezelfde naam te zijn.

112
00:07:54,290 --> 00:07:55,010
‫Zo zouden we het kunnen noemen.

113
00:07:55,220 --> 00:07:56,630
‫We zouden het tijd kunnen noemen.

114
00:07:56,990 --> 00:08:03,470
‫Maar het is gemakkelijker om het dezelfde naam te geven, want dan is het voor iedereen die het leest duidelijk wat hier moet

115
00:08:03,470 --> 00:08:04,310
‫worden doorgegeven.

116
00:08:04,520 --> 00:08:09,530
‫Vervolgens moeten we in het C ++ -bestand overeenkomen met de lijst met parameters.

117
00:08:09,530 --> 00:08:13,730
‫Dus nogmaals, je kunt dit gewoon doen door te kopiëren en plakken of door het uit te typen.

118
00:08:13,730 --> 00:08:18,020
‫Als je het uittypt, zorg er dan voor dat je geen typefouten maakt, want de compiler zal klagen.

119
00:08:18,470 --> 00:08:24,680
‫Dus we zullen een float genaamd Delta Time laten doorgeven als parameter of gedefinieerd als een parameter om platform

120
00:08:24,680 --> 00:08:30,740
‫te verplaatsen, maar we hebben het niet echt doorgegeven als argument om platform in tick te verplaatsen.

121
00:08:30,740 --> 00:08:34,440
‫En je zult zien dat ik hier een klein rood kronkelig lijntje heb, heel, heel.

122
00:08:34,490 --> 00:08:40,700
‫Het zegt dat er te weinig argumenten zijn in de functie-aanroep omdat ik het heb gedefinieerd in het header-bestand en

123
00:08:40,700 --> 00:08:46,130
‫nu in de C++ en ook omdat ik één parameter van het type float nodig heb.

124
00:08:46,730 --> 00:08:48,710
‫Dus ik moet die parameter opgeven.

125
00:08:48,710 --> 00:08:52,100
‫Dus ik ga ervoor zorgen dat dit de parameter is die ik opgeef.

126
00:08:52,100 --> 00:08:58,520
‫De waarde die ik opgeef, is afkomstig van de Delta-tijdvariabele of Delta-tijdparameter van tick.

127
00:08:59,030 --> 00:09:03,890
‫Dus we zijn de waarde aan het threaden, de waarde wordt doorgegeven aan het vinkje,

128
00:09:03,890 --> 00:09:11,930
‫wordt dan doorgegeven aan het verplaatsingsplatform en komt terecht in een parameter in de MOVE-platformfunctie waar het kan worden gebruikt om platformfunctionaliteit uit te voeren en

129
00:09:11,930 --> 00:09:12,800
‫te verplaatsen.

130
00:09:12,800 --> 00:09:18,710
‫Dus ik zou graag willen dat je je eigen roteerplatform-functie maakt die we gaan aanroepen vanuit TIC.

131
00:09:19,010 --> 00:09:23,690
‫Dus je gaat het toevoegen aan het headerbestand zoals we hebben gedaan voor onze MOVE-platformfunctie.

132
00:09:23,690 --> 00:09:26,360
‫We gaan het ook op dezelfde manier aan het C++-bestand toevoegen.

133
00:09:26,360 --> 00:09:33,950
‫Dus haal je hints uit de manier waarop we het voor die functies hebben gedaan en roep het dan op vanuit de vinkfunctie.

134
00:09:34,250 --> 00:09:40,040
‫Zorg ervoor dat u in Delta-tijd passeert en dat u eventuele parameters definieert waarmee u in de

135
00:09:40,520 --> 00:09:45,920
‫Delta-tijd kunt passeren en de body van het Rotate-platform implementeert zodat het een bericht uitlogt.

136
00:09:45,920 --> 00:09:51,350
‫Het gaat het platform nog niet echt draaien, maar als een tijdelijke aanduiding om ervoor te zorgen dat

137
00:09:51,350 --> 00:09:56,120
‫dat daadwerkelijk een logbericht wordt genoemd met behulp van het UI-log waarover we hebben geleerd.

138
00:09:56,450 --> 00:09:58,160
‫Pauzeer de video en probeer het.

139
00:10:01,630 --> 00:10:02,080
‫Oké.

140
00:10:02,080 --> 00:10:02,800
‫Welkom terug.

141
00:10:02,830 --> 00:10:09,070
‫We beginnen dus in het headerbestand en we zullen meestal hetzelfde doen als voor

142
00:10:09,070 --> 00:10:10,020
‫ons MOVE-platform.

143
00:10:10,030 --> 00:10:14,380
‫We gaan het in een privégedeelte plaatsen, zodat het alleen binnen onze klas toegankelijk is.

144
00:10:14,890 --> 00:10:19,720
‫Ik ga het een ongeldig retourtype geven, we gaan het een roterend platform noemen.

145
00:10:19,870 --> 00:10:21,400
‫We gaan de parameterlijst openen.

146
00:10:21,400 --> 00:10:25,180
‫En daarin gaan we één parameter plaatsen met het type

147
00:10:25,180 --> 00:10:30,670
‫float, we gaan het Delta-tijd noemen en de parameters sluiten en eindigen met een puntkomma.

148
00:10:31,270 --> 00:10:36,280
‫Nu is het meeste van wat we doen in het C++-bestand precies hetzelfde als in de kop van het bestand.

149
00:10:36,280 --> 00:10:41,380
‫Dus ik ga deze regel eigenlijk kopiëren, naar het C++-bestand gaan en je laten zien wat er anders is.

150
00:10:41,800 --> 00:10:46,990
‫Dus ik ga naar een nieuwe lege regel aan het einde van het bestand, plak het erin, en wat anders

151
00:10:46,990 --> 00:10:50,200
‫is, is dat we hier de scope-resolutie-operator en de klassenaam nodig hebben.

152
00:10:50,620 --> 00:10:57,820
‫Dus we krijgen een bewegend platform, dubbele punt, dubbele punt roterend platform.

153
00:10:58,360 --> 00:11:01,330
‫Dan hebben we de parameterlijst en dan hebben we de puntkomma aan het einde niet nodig.

154
00:11:01,330 --> 00:11:06,940
‫Dus verwijder de puntkomma, voeg een nieuwe regel toe en val accolades aan in plaats van een nieuwe regel tussen

155
00:11:06,940 --> 00:11:07,900
‫die twee accolades.

156
00:11:08,680 --> 00:11:12,010
‫Dus wat we hier willen doen, is een logbericht afdrukken.

157
00:11:12,010 --> 00:11:14,920
‫Dus ik ga je log typen, druk op enter.

158
00:11:15,460 --> 00:11:17,260
‫Het wordt gewoon een eenvoudig displaybericht.

159
00:11:17,680 --> 00:11:24,190
‫En in de tekst ga ik de naam van ons platform zetten.

160
00:11:24,550 --> 00:11:31,090
‫Dus het wordt procent s, dan gaan we roterende punt, punt, punt typen, en dan ga ik

161
00:11:31,090 --> 00:11:32,530
‫de naam doorgeven.

162
00:11:32,530 --> 00:11:37,570
‫We zouden dit in een variabele kunnen zetten, maar omdat het hier een vrij

163
00:11:37,600 --> 00:11:44,980
‫korte regel is, typ ik ster, get name en plaats dan de haakjes zodat we hier in wezen de get-naam

164
00:11:44,980 --> 00:11:45,580
‫noemen.

165
00:11:45,580 --> 00:11:48,040
‫Dat is de uitdrukking die de string in handen krijgt.

166
00:11:48,370 --> 00:11:53,350
‫En dan zetten we dat resultaat om in ons logbericht.

167
00:11:53,950 --> 00:12:00,010
‫Dus van al onze platforms verwacht ik dat roteren wordt afgedrukt, maar dit zal alleen gebeuren als ik het

168
00:12:00,010 --> 00:12:01,360
‫echt in tech noem.

169
00:12:01,360 --> 00:12:09,130
‫Dus laten we naar de tick-functie gaan nadat MOVE-platform een nieuwe regel kan toevoegen en het rotatieplatform kan aanroepen.

170
00:12:09,730 --> 00:12:11,290
‫En we moeten het zien.

171
00:12:11,290 --> 00:12:16,840
‫Als ik de haakjes open, krijg ik een hint dat ik een argument voor Delta-tijd moet doorgeven.

172
00:12:16,840 --> 00:12:21,340
‫Dus nogmaals, we gaan gewoon diezelfde Delta-tijdvariabele van binnenuit passeren.

173
00:12:21,490 --> 00:12:24,790
‫En zoals ik al zei, de namen hier hoeven niet hetzelfde te zijn.

174
00:12:24,790 --> 00:12:28,480
‫Dus deze delta-tijd moet overeenkomen met de Delta-tijd binnen tech.

175
00:12:29,080 --> 00:12:34,330
‫Maar we kunnen ervoor kiezen om in plaats daarvan de variabele binnen de roteerplatformdatum aan te roepen.

176
00:12:34,330 --> 00:12:39,520
‫En overal waar we het gebruiken binnen het rotatieplatform, zouden we ADT moeten gebruiken, de naam van de parameter, en

177
00:12:39,520 --> 00:12:41,380
‫het argument kan in principe anders zijn.

178
00:12:41,470 --> 00:12:46,840
‫Dus laten we naar Unreal gaan en op compileren klikken omdat we enkele wijzigingen hebben aangebracht in het headerbestand.

179
00:12:46,840 --> 00:12:52,930
‫De compilatie zal iets langer zijn dan toen we net het C++-bestand veranderden en als dat eenmaal klaar is met

180
00:12:52,930 --> 00:12:57,580
‫compileren, gaan we verder en gaan we op play klikken en het uitvoerlogboek openen.

181
00:12:58,030 --> 00:13:04,000
‫En je kunt zien dat we inderdaad logberichten weergeven over elk van de roterende platforms.

182
00:13:04,000 --> 00:13:08,590
‫Het lijkt er dus op dat onze functie effectief wordt aangeroepen in tech.

183
00:13:09,070 --> 00:13:09,580
‫Goed spul.

184
00:13:09,580 --> 00:13:14,830
‫Nu begrijpen we hoe we onze eigen functies kunnen maken die lid zijn van een klasse.

185
00:13:15,280 --> 00:13:21,250
‫Het is een erg handig hulpmiddel om een code opnieuw te gebruiken, maar ook om het te organiseren zoals het was in Blueprint.

186
00:13:21,760 --> 00:13:23,470
‫Ik zie je in de volgende lezing.

