‫Xin chào và chào mừng.
‫Trong bài giảng này, chúng ta sẽ xem xét tương đương C ++ của các hàm bản thiết kế thuần túy, đó
‫là các hàm khái niệm.
‫Chúng ta sẽ xem từ khóa kết hợp này là gì, cách chúng ta sử dụng nó và cách nó hạn chế những gì chúng ta có thể làm
‫trong mã của mình để giúp chúng ta an toàn hơn.
‫Hãy đi sâu vào và xem nó hoạt động như thế nào.
‫Với bản in màu xanh lam, chúng tôi đã có thể tạo ra một hàm thuần túy và điều đó có nghĩa là chúng tôi
‫có thể loại bỏ nhu cầu về các chân thực thi.
‫Bây giờ, trong C ++, chúng ta có thể làm điều gì đó mạnh mẽ hơn một chút, đó là làm cho một hàm không đổi.
‫Bây giờ, nó có nghĩa là gì khi tạo một hàm const?
‫Nó có nghĩa là hàm đó không thể sửa đổi trạng thái của lớp của bạn, và nó thực sự được thực thi bởi các quy tắc
‫của trình biên dịch.
‫Vì vậy, hãy để tôi cho bạn một ví dụ.
‫Nếu tôi sử dụng hàm trả về nền tảng nên của chúng tôi, đây không phải là hàm có thể sửa đổi bất kỳ thứ
‫gì trong lớp và sẽ là một lỗi thực sự nếu chúng tôi quên điều đó vì sẽ rất kỳ lạ nếu gọi hàm
‫này và sử dụng trong câu lệnh if thực sự thay đổi vị trí của nền tảng hoặc nếu nó đã cập nhật khoảng cách di
‫chuyển hoặc tốc độ nền tảng.
‫Vì vậy, để giữ cho mình trung thực với điều đó, chúng ta có thể làm cho nó chuyển đổi.
‫Và cách chúng ta làm điều này là đặt từ khóa contact sau dấu ngoặc đơn của hàm.
‫Chúng tôi cũng thường để lại một khoảng trống ở đây.
‫Bây giờ, để nó khớp chính xác với hàm trong tệp C ++, chúng ta thực sự phải
‫đặt từ khóa const đó ở đó.
‫Bây giờ, như tôi đã nói, điều này bây giờ khiến việc thực hiện bất kỳ điều gì có thể sửa đổi lớp là một lỗi.
‫Vì vậy, nếu nền tảng nên trả lại, tôi đã thử và sửa đổi một biến lớp chẳng hạn như khoảng cách di chuyển.
‫Tôi có thể thử và đặt khoảng cách di chuyển thành 200.
‫Hãy xem điều gì sẽ xảy ra khi chúng ta chuyển sang phần không thực và nhấn nút biên dịch.
‫Được chứ.
‫Bạn có thể thấy rằng hiện có một lỗi.
‫Nó không xây dựng được và nếu bạn nhìn vào lỗi, bạn có thể thấy rằng có điều gì đó đang được
‫nói ở đây về việc không thể sửa đổi một cái gì đó vì nó được truy cập thông qua một con trỏ không đổi.
‫Bây giờ đừng lo lắng về ngôn ngữ đó.
‫Nó hơi khó để diễn giải, nhưng vấn đề là từ khóa const đã ở đó và nó nói rằng nó không
‫thể sửa đổi một cái gì đó và điều đó rất quan trọng.
‫Ngoài ra, nếu bạn gọi bất kỳ hàm nào không được đánh dấu là const, đó cũng là một vấn đề.
‫Vì vậy, trong khi gọi get vị trí diễn viên là một hàm chi phí không thay đổi bất cứ điều gì chỉ
‫lấy vị trí.
‫Không được phép gọi vị trí diễn viên đã đặt chưa được đánh dấu là const và do đó, nó không hợp lệ.
‫Nó có thể đang sửa đổi lớp.
‫Vì vậy, bất kỳ hàm nào không được đánh dấu là const đều không được phép gọi từ bên trong một hàm chi phí.
‫Và vì vậy bạn có thể thấy một vấn đề đang nổi lên.
‫Chúng tôi thực sự không thể gọi get khoảng cách di chuyển từ bên trong nên trả về nền tảng của chúng tôi vì nên trả lại nền tảng
‫là const nhưng nhận khoảng cách đã di chuyển không được đánh dấu như vậy.
‫Vì vậy, một khoản phí nhanh chóng để bạn có được khoảng cách đã di chuyển const làm cho chi phí di chuyển khoảng cách vì vậy trong
‫tiêu đề và xem tệp p, bạn sẽ thêm từ khóa const đó để cho C ++ biết rằng nó không nên sửa đổi
‫lớp và nó có biên dịch ngay bây giờ không tạm dừng video và bắt đầu.
‫Được chứ.
‫Chào mừng trở lại.
‫Vì vậy, trước tiên chúng ta sẽ chuyển sang tệp tiêu đề.
‫Và sau dấu ngoặc đóng, chúng ta sẽ thêm một khái niệm khoảng trắng và sau đó chúng ta
‫sẽ quay lại tệp C ++.
‫Và sau khi dấu ngoặc đơn được dịch chuyển một khoảng cách, chúng ta sẽ đưa ra khái niệm không gian.
‫Bây giờ các dòng nguệch ngoạc trong khoảng cách di chuyển sẽ được cập nhật sau một chút thời gian.
‫Nhưng nếu chúng ta đi đến Unreal và nhấn nút biên dịch, đó sẽ là trọng tài cuối cùng xem liệu trình biên dịch
‫có thích những gì chúng ta đã làm hay không.
‫Và lần này biên dịch đã diễn ra thành công, có nghĩa là chúng ta đã cập nhật đúng mã
‫của mình.
‫Và điều đó có ý nghĩa bởi vì không có gì được gọi là từ get xa move mà không phải là khái niệm, nó không
‫cố gắng thay đổi bất cứ điều gì.
‫Và nơi chúng ta đang gọi một hàm trong nền tảng sẽ trả về, chúng ta chỉ sử dụng các hàm const và đây là một cách
‫để chúng ta tăng độ an toàn cho mã của mình vì các hàm sẽ không thay đổi nội dung mà chúng ta không
‫biết về nó.
‫Bây giờ là một bài tập nhỏ cho bản thân, bạn có thể muốn xem qua và xem xét tất cả các chức
‫năng mà chúng tôi đang sử dụng cho đến nay và xem chức năng nào được đánh dấu là hằng số, chức năng nào không.
‫Bạn có thể thực hiện việc này bằng cách chỉ cần di chuột qua một chức năng chẳng hạn như lấy vị trí của diễn viên và xem liệu cửa
‫sổ bật lên đó có được bao gồm hay không, liệu sau dấu ngoặc đơn có liên hệ hay không.
‫Bạn có thể thấy với get vị trí hoạt động khi di chuột qua nó cho tôi biết, việc di chuột qua get name cũng cho tôi
‫rằng đây là const và nó có ý nghĩa.
‫Cả hai đều không nên thay đổi trạng thái của lớp chúng ta.
‫Bây giờ nếu tôi di chuột qua tick, bạn có thể thấy cái này không được đánh dấu là const và điều đó
‫có ý nghĩa vì Tick thường được sử dụng để cập nhật cách một lớp được định vị trên thế giới hoặc bất kỳ trạng thái nào của lớp.
‫Và chúng tôi đã có véc tơ của mình.
‫Nếu chúng ta di chuột qua, đến an toàn, bình thường, bạn có thể thấy rằng nó được đánh dấu là const,
‫đó là vì get safe normal không thực sự sửa đổi vectơ, nó chỉ trả về một giá trị với một vectơ mới trong đó.
‫À chính nó đấy.
‫Đối với bài giảng này, chúng ta đã học về cách thêm const vào các hàm của chúng ta để tăng độ an toàn cho mã của chúng ta.
‫Hẹn gặp lại các bạn trong phần tiếp theo.